Unsicher, ob ich TransactionAwarePersistenceManagerFactoryProxy verstehe

192

Ich versuche, das org.springframework.orm.jdo.TransactionAwarePersistenceManagerFactoryProxyin 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.getPersistenceManagerbesser auf meine Bedürfnisse zugeschnitten? Kann getObjectnull zurückgeben?

Megazord
quelle
193
Lol! Tut mir leid, kann einfach nicht anders. Ich habe fast geweint, als ich den Objektnamen sah.
Eric des Courtis
133
Und deshalb, liebe Kinder, sollte Java aufhören, Drogen zu nehmen.
Griwes
48
Sie wissen, dass Sie zu lange in der Java-Welt waren, wenn Namen wie dieser nicht so unvernünftig erscheinen ...!
Brian
27
Jungs. Hey Leute, hört zu. Du machst wieder den Neuling-Fehler. Spring Framework ist kein Java und Java ist kein Spring Framework. Verwirre sie nicht.
Torben
49
In Bezug auf die ursprüngliche Frage: Dies ist die Art von qualitativ hochwertigem Trolling, die ich wirklich schätzen kann.
Torben

Antworten:

20

Antworten finden Sie direkt in der Dokumentation

Mir ist klar, dass dies dazu beitragen kann, dass meine DAOs mit einer einfachen JDO PersistenceManagerFactory arbeiten.

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.

Kann ich damit weiterhin auf meine Factory zugreifen, um einen transaktionsbewussten Persistenzmanager zu erstellen?

DAOs können nahtlos zwischen einer JNDI PersistenceManagerFactory und diesem Proxy für eine lokale PersistenceManagerFactory wechseln.

Wenn das von der Factory verwaltete Objekt ein Singleton ist, ändert sich dadurch etwas? Warum nicht einfach direkt auf die PersistenceManagerFactory zugreifen?

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.

Chand Priyankara
quelle