Ich versuche, das org.springframework.orm.jdo.TransactionAwarePersistenceManagerFactoryProxy
in meinem Spring-Projekt zu verwenden, bin mir aber nicht sicher, wie ich es verwenden soll oder ob es genau das ist, wonach ich suche. Mir ist klar, dass dies dazu beitragen kann, dass meine DAOs mit einem einfachen JDO arbeiten PersistenceManagerFactory
. Eine andere Frage ist: Was passiert, wenn der Proxy nicht richtig erstellt wird? Kann ich damit weiterhin auf meine Factory zugreifen, um einen transaktionsbewussten Persistenzmanager zu erstellen? Wenn das von der Factory verwaltete Objekt ein Singleton ist, ändert sich dadurch etwas? Warum nicht einfach direkt auf die PersistenceManagerFactory zugreifen? Wäre vielleicht PersistenceManagerFactoryUtils.getPersistenceManager
besser auf meine Bedürfnisse zugeschnitten? Kann getObject
null zurückgeben?
192
Antworten:
Antworten finden Sie direkt in der Dokumentation
Ja. Mit dem TransactionAwarePersistenceManagerFactoryProxy-Proxy können DAOs mit einer einfachen JDO PersistenceManagerFactory-Referenz arbeiten, während sie weiterhin an der Ressourcen- und Transaktionsverwaltung von Spring (oder einem J2EE-Server) teilnehmen. Sie können es sicher in Ihrer App verwenden. Ohne Ihre genauen Bedürfnisse zu kennen, können wir dies jedoch nicht weiter bestätigen.
DAOs können nahtlos zwischen einer JNDI PersistenceManagerFactory und diesem Proxy für eine lokale PersistenceManagerFactory wechseln.
In der Regel ist es vorzuziehen, Ihre JDO-basierten DAOs mit Spring's JdoTemplate zu schreiben. Dies bietet Vorteile wie konsistente Datenzugriffsausnahmen anstelle von JDOExceptions auf der DAO-Ebene. Das Ressourcen- und Transaktionsmanagement von Spring (und Dependency Injection) funktioniert jedoch auch für DAOs, die gegen die einfache JDO-API geschrieben wurden.
quelle