0
GWT, Hibernate 및 Google Guice (GIN 포함)를 사용하는 비교적 단순한 응용 프로그램을 작성하고 있습니다. 내가 원했던 것은 EntityManager#getTransaction
을 사용하는 대신 외부 관리자 (예 : @Transactional
: 봄)를 사용하여 트랜잭션을 관리하도록하는 것입니다. @Transactional
을 사용해 보았지만 나에게 도움이되지 않습니다. Hibernate와 Guice로 JavaSE에서 트랜잭션 관리
Providers
를 사용하여 주입이 :
/* import stuff */
public class DbProvider implements Provider<EntityManager> {
public EntityManager get() {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("persdb");
return emf.createEntityManager();
}
}
수동으로 트랜잭션을 관리 할 때 제대로 작동하는 것 같다. DBUnit을 사용하여 자동 테스트를 수행하기 위해 트랜잭션을 자동으로 관리하고자했습니다.
누구든지 해결 방법을 알고 있습니까?
감사합니다. 그게 효과가 있다면 :) 어디에서 PersistService를 시작합니까? – mhaligowski
@halish : 당신이 원하는 곳에 언제든지 PersistService를 시작할 수있다. 웹 응용 프로그램에서는 서비스가 생성 될 때 서비스를 시작하고 파기 될 때 서비스를 중지하는'PersistFilter'를 사용하여 수행 할 수 있습니다. 자신의 응용 프로그램에서 사용하기 전에 먼저 응용 프로그램을 시작해야합니다. – ColinD