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?


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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.