No estoy seguro si entiendo TransactionAwarePersistenceManagerFactoryProxy

192

Estoy tratando de usarlo org.springframework.orm.jdo.TransactionAwarePersistenceManagerFactoryProxyen mi proyecto Spring, pero no estoy seguro de cómo usarlo o si es exactamente lo que estoy buscando. Me doy cuenta de que puede ayudar a que mis DAO funcionen con un JDO simple PersistenceManagerFactory. Otra pregunta es: ¿qué sucede si el proxy no se realiza correctamente? ¿Puedo seguir usándolo para acceder a mi fábrica para crear un administrador de persistencia consciente de las transacciones? Si el objeto gestionado por la fábrica es un singleton, ¿esto cambia las cosas? ¿Por qué no solo acceder a PersistenceManagerFactory directamente? ¿Quizás PersistenceManagerFactoryUtils.getPersistenceManagersería más adecuado para mis necesidades? Puede getObjectvolver nulo?

megazord
fuente
193
Jajaja Lo siento, no puedo evitarlo. Casi lloré cuando vi el nombre del objeto.
Eric des Courtis
133
Y esto, queridos hijos, es por qué Java debería dejar de tomar drogas.
Griwes
48
¡Sabes que has estado en el mundo Java demasiado tiempo cuando nombres como este no parecen tan irrazonables ...!
Brian
27
Chicos Hola chicos, escuchen. Estás cometiendo el error de novato de nuevo. Spring Framework no es Java y Java no es Spring Framework. No los confundas.
Torben
49
Con respecto a la pregunta original: este es el tipo de curricán de alta calidad que realmente puedo apreciar.
Torben

Respuestas:

20

Las respuestas están directamente disponibles en la documentación

Me doy cuenta de que puede ayudar a que mis DAO funcionen con una simple JDO PersistenceManagerFactory.

Si. El proxy TransactionAwarePersistenceManagerFactoryProxy permite que los DAO trabajen con una referencia simple JDO PersistenceManagerFactory, mientras siguen participando en la gestión de recursos y transacciones de Spring (o un servidor J2EE). Seguramente puedes usarlo en tu aplicación. Pero sin conocer sus necesidades exactas, no podemos confirmar más.

¿Puedo seguir usándolo para acceder a mi fábrica y crear un administrador de persistencia consciente de las transacciones?

Los DAO podrían cambiar sin problemas entre un JNDI PersistenceManagerFactory y este proxy para un PersistenceManagerFactory local.

Si el objeto gestionado por la fábrica es un singleton, ¿esto cambia las cosas? ¿Por qué no solo acceder a PersistenceManagerFactory directamente?

Por lo general, es preferible escribir sus DAO basados ​​en JDO con JdoTemplate de Spring, que ofrece beneficios tales como excepciones de acceso a datos consistentes en lugar de JDOExceptions en la capa DAO. Sin embargo, la administración de recursos y transacciones de Spring (y la Inyección de dependencias) también funcionarán para los DAO escritos contra la API JDO simple.

Chand Priyankara
fuente