Je ne sais pas si je comprends TransactionAwarePersistenceManagerFactoryProxy

J’essaie d’utiliser org.springframework.orm.jdo.TransactionAwarePersistenceManagerFactoryProxy dans mon projet Spring, mais je ne sais pas comment l’utiliser ou si c’est exactement ce que je recherche. Je me rends compte que cela peut aider mes DAO à travailler avec un simple JDO PersistenceManagerFactory . Une autre question est: que se passe-t-il si le proxy n’est pas correctement fabriqué? Puis-je toujours l’utiliser pour accéder à mon usine afin de créer un gestionnaire de persistance sensible aux transactions? Si l’object géré par la fabrique est un singleton, cela change-t-il les choses? Pourquoi ne pas simplement accéder directement à PersistenceManagerFactory? Peut-être que PersistenceManagerFactoryUtils.getPersistenceManager serait plus adapté à mes besoins? getObject peut- getObject retourner null?

    Les réponses sont directement disponibles sur la documentation

    Je me rends compte que cela peut aider mes DAO à travailler avec un simple JDO PersistenceManagerFactory.

    Oui. Le proxy TransactionAwarePersistenceManagerFactoryProxy permet aux DAO de travailler avec une référence JDO PersistenceManagerFactory simple, tout en continuant à participer à la gestion des ressources et des transactions de Spring (ou d’un serveur J2EE). Vous pouvez sûrement l’utiliser dans votre application. Mais sans connaître vos besoins exacts, nous ne pouvons pas confirmer davantage.

    Puis-je toujours l’utiliser pour accéder à mon usine afin de créer un gestionnaire de persistance sensible aux transactions

    Les DAO peuvent basculer de manière transparente entre une JNDI PersistenceManagerFactory et ce proxy pour une PersistenceManagerFactory locale.

    Si l’object géré par la fabrique est un singleton, cela change-t-il les choses? Pourquoi ne pas simplement accéder directement à PersistenceManagerFactory?

    Il est généralement préférable d’écrire vos DAO basés sur JDO avec JdoTemplate de Spring, offrant des avantages tels que des exceptions d’access aux données cohérentes au lieu d’exceptions JDO au niveau de la couche DAO. Cependant, la gestion des ressources et des transactions de Spring (ainsi que l’dependency injections) fonctionnera également pour les DAO écrits avec l’API JDO standard.