[java] TransactionAwarePersistenceManagerFactoryProxy를 이해하는지 확실하지 않습니다.

org.springframework.orm.jdo.TransactionAwarePersistenceManagerFactoryProxySpring 프로젝트에서 를 사용하려고하는데 사용법 이나 정확히 찾고 있는지 확실하지 않습니다. DAO가 일반 JDO와 함께 작동하는 데 도움이 될 수 있음을 알고 있습니다 PersistenceManagerFactory. 또 다른 질문은 프록시가 제대로 작성되지 않으면 어떻게됩니까? 트랜잭션 인식 지속성 관리자를 작성하기 위해 여전히 팩토리에 액세스 할 수 있습니까? 팩토리가 관리하는 객체가 싱글 톤 인 경우 변경 사항이 있습니까? 왜 PersistenceManagerFactory에 직접 액세스하지 않습니까? 아마도 PersistenceManagerFactoryUtils.getPersistenceManager내 필요에 더 적합할까요? getObjectnull을 반환 할 수 있습니까 ?



답변

답변은 문서에 직접 제공됩니다

DAO가 일반 JDO PersistenceManagerFactory와 작동하도록 도울 수 있다는 것을 알고 있습니다.

예. TransactionAwarePersistenceManagerFactoryProxy 프록시를 사용하면 DAO가 일반 JDO PersistenceManagerFactory 참조와 함께 작업하면서 스프링 (또는 J2EE 서버) 자원 및 트랜잭션 관리에 계속 참여할 수 있습니다. 앱에서 반드시 사용할 수 있습니다. 그러나 귀하의 정확한 요구를 알지 못하면 더 이상 확인할 수 없습니다.

트랜잭션 인식 지속성 관리자를 작성하기 위해 여전히 팩토리에 액세스 할 수 있습니까?

DAO는 로컬 PersistenceManagerFactory를 위해 JNDI PersistenceManagerFactory와이 프록시를 완벽하게 전환 할 수 있습니다.

팩토리가 관리하는 객체가 싱글 톤 인 경우 이로 인해 변경됩니까? 왜 PersistenceManagerFactory에 직접 액세스하지 않습니까?

일반적으로 Spring의 JdoTemplate을 사용하여 JDO 기반 DAO를 작성하는 것이 바람직하며, DAO 계층에서 JDOExceptions 대신 일관된 데이터 액세스 예외와 같은 이점을 제공합니다. 그러나 스프링의 리소스 및 트랜잭션 관리 (및 의존성 주입)는 일반 JDO API에 대해 작성된 DAO에서도 작동합니다.


답변