Nie wiem, czy rozumiem TransactionAwarePersistenceManagerFactoryProxy

192

Próbuję użyć org.springframework.orm.jdo.TransactionAwarePersistenceManagerFactoryProxyw moim wiosennym projekcie, ale nie jestem pewien, jak go użyć lub czy to dokładnie to, czego szukam. Zdaję sobie sprawę, że może to pomóc moim DAO w pracy z prostym JDO PersistenceManagerFactory. Kolejne pytanie brzmi: co się stanie, jeśli serwer proxy nie zostanie poprawnie utworzony? Czy nadal mogę go używać do uzyskiwania dostępu do mojej fabryki w celu utworzenia menedżera trwałości uwzględniającego transakcje? Jeśli obiekt zarządzany przez fabrykę jest singletonem, czy to zmienia rzeczy? Dlaczego nie uzyskać bezpośredniego dostępu do PersistenceManagerFactory? Być PersistenceManagerFactoryUtils.getPersistenceManagermoże lepiej pasowałby do moich potrzeb? Czy można getObjectzwrócić wartość null?

megazord
źródło
193
Lol! Przepraszam, po prostu nic na to nie poradzę. Prawie płakałem, kiedy zobaczyłem nazwę obiektu.
Eric des Courtis,
133
I to, drogie dzieci, Jawa powinna przestać brać narkotyki.
Griwes,
48
Wiesz, że zbyt długo przebywałeś w świecie Java, kiedy takie nazwiska nie wydają się aż tak nierozsądne ...!
Brian
27
Chłopaki Cześć chłopaki, słuchajcie. Ponownie popełniasz błąd początkującego. Spring Framework to nie Java, a Java to nie Spring. Nie pomyl ich.
Torben
49
Odnośnie pierwotnego pytania: jest to rodzaj trollingu wysokiej jakości, który mogę naprawdę docenić.
Torben

Odpowiedzi:

20

Odpowiedzi są bezpośrednio dostępne w dokumentacji

Zdaję sobie sprawę, że może to pomóc moim DAO w pracy z prostym JDO PersistenceManagerFactory.

Tak. TransactionAwarePersistenceManagerFactoryProxy proxy umożliwia DAO do pracy z prostym JDO PersistenceManagerFactory, jednocześnie uczestnicząc w zarządzaniu zasobami i transakcjami Spring (lub serwera J2EE). Z pewnością możesz go użyć w swojej aplikacji. Ale nie znając dokładnych potrzeb, nie możemy potwierdzić.

Czy nadal mogę go używać do uzyskiwania dostępu do mojej fabryki w celu utworzenia menedżera trwałości uwzględniającego transakcje

DAO mogą bezproblemowo przełączać się między JNDI PersistenceManagerFactory a tym proxy dla lokalnego PersistenceManagerFactory.

Jeśli obiekt zarządzany przez fabrykę jest singletonem, czy to zmienia rzeczy? Dlaczego nie uzyskać bezpośredniego dostępu do PersistenceManagerFactory?

Zazwyczaj lepiej jest pisać swoje DAO oparte na JDO za pomocą Spring JdoTemplate, oferując takie korzyści, jak spójne wyjątki dostępu do danych zamiast JDOExceptions w warstwie DAO. Jednak zarządzanie zasobami i transakcjami Springa (i Wstrzykiwanie zależności) będzie działać również w przypadku DAO napisanych przeciwko zwykłemu interfejsowi API JDO.

Chand Priyankara
źródło