Je ne sais pas si je comprends TransactionAwarePersistenceManagerFactoryProxy

191

J'essaie d'utiliser le org.springframework.orm.jdo.TransactionAwarePersistenceManagerFactoryProxydans 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 à faire fonctionner mes DAO avec un JDO simple PersistenceManagerFactory. Une autre question est: que se passe-t-il si le proxy n'est pas fait correctement? Puis-je toujours l'utiliser pour accéder à ma fabrique afin de créer un gestionnaire de persistance prenant en charge les transactions? Si l'objet géré par la fabrique est un singleton, cela change-t-il les choses? Pourquoi ne pas accéder directement à PersistenceManagerFactory? PersistenceManagerFactoryUtils.getPersistenceManagerSerait peut -être plus adapté à mes besoins? Peut getObjectretourner null?

mégazord
la source
194
Lol! Désolé, je ne peux pas m'en empêcher, j'ai presque pleuré en voyant le nom de l'objet.
Eric des Courtis
133
Et ceci, chers enfants, c'est pourquoi Java devrait arrêter de se droguer.
Griwes
48
Vous savez que vous êtes dans le monde Java depuis trop longtemps quand des noms comme celui-ci ne semblent pas si déraisonnables ...!
Brian
27
Les gars. Hé les gars, écoutez. Vous faites à nouveau l'erreur de débutant. Spring Framework n'est pas Java et Java n'est pas Spring Framework. Ne les confondez pas.
Torben
49
En ce qui concerne la question initiale: c'est le genre de pêche à la traîne de haute qualité que je peux vraiment apprécier.
Torben

Réponses:

20

Les réponses sont directement disponibles sur la documentation

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

Oui. Le proxy TransactionAwarePersistenceManagerFactoryProxy permet aux DAO de travailler avec une référence JDO PersistenceManagerFactory simple, tout en participant à 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 à ma fabrique afin de créer un gestionnaire de persistance prenant en charge les transactions

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

Si l'objet géré par la fabrique est un singleton, cela change-t-il les choses? Pourquoi ne pas 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'accès aux données cohérentes au lieu de JDOExceptions au niveau de la couche DAO. Cependant, la gestion des ressources et des transactions de Spring (et l'injection de dépendances) fonctionnera également pour les DAO écrits avec l'API JDO simple.

Chand Priyankara
la source