191 votes

Je ne suis pas sûr de comprendre TransactionAwarePersistenceManagerFactoryProxy

J'essaie d'utiliser la fonction 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 sais qu'il peut aider à faire fonctionner mes DAO avec un simple JDO PersistenceManagerFactory . Une autre question est : que se passe-t-il si le proxy n'est pas fait correctement ? Est-ce que je peux toujours l'utiliser pour accéder à ma fabrique pour créer un gestionnaire de persistance sensible aux transactions ? Si l'objet géré par la fabrique est un singleton, cela change-t-il les choses ? Pourquoi ne pas accéder directement à la PersistenceManagerFactory ? Peut-être PersistenceManagerFactoryUtils.getPersistenceManager serait plus adapté à mes besoins ? Peut-on getObject return null ?

20voto

chandpriyankara Points 909

Les réponses sont directement disponibles sur la documentation

Je réalise que cela peut aider à faire fonctionner mes DAO avec un simple JDO PersistenceManagerFactory.

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

Puis-je encore l'utiliser pour accéder à ma fabrique afin de créer un gestionnaire de persistance prenant en compte les transactions ?

Les DAO pourraient basculer de manière transparente entre un PersistenceManagerFactory JNDI et ce proxy pour un PersistenceManagerFactory local.

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

Il est généralement préférable d'écrire vos DAO basés sur JDO avec le JdoTemplate de Spring, qui offre des avantages tels que des exceptions d'accès 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 (et l'injection de dépendances) fonctionne également pour les DAO écrits avec l'API JDO classique.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X