J'essaie d'utiliser le 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 à 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.getPersistenceManager
Serait peut -être plus adapté à mes besoins? Peut getObject
retourner null?
191
Réponses:
Les réponses sont directement disponibles sur la documentation
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.
Les DAO peuvent basculer de manière transparente entre une PersistenceManagerFactory JNDI et ce proxy pour une PersistenceManagerFactory locale.
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.
la source