Próbuję użyć org.springframework.orm.jdo.TransactionAwarePersistenceManagerFactoryProxy
w 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.getPersistenceManager
może lepiej pasowałby do moich potrzeb? Czy można getObject
zwrócić wartość null?
192
Odpowiedzi:
Odpowiedzi są bezpośrednio dostępne w dokumentacji
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ć.
DAO mogą bezproblemowo przełączać się między JNDI PersistenceManagerFactory a tym proxy dla lokalnego 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.
źródło