我正在编写一个使用GWT,Hibernate和Google Guice(使用GIN)的相当简单的应用程序。我想要做的是使用外部管理器管理事务(比如在Spring中使用@Transactional
),而不是使用EntityManager#getTransaction
。我尝试使用@Transactional
,但它似乎对我不起作用。
我已经使用Providers
注入了EntityManager,如下所示:
/* import stuff */
public class DbProvider implements Provider<EntityManager> {
public EntityManager get() {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("persdb");
return emf.createEntityManager();
}
}
在手动管理交易时似乎正常工作。我希望自动管理事务,也可以使用DBUnit进行自动化测试。
有谁知道如何解决这个问题?
答案 0 :(得分:6)
让@Transactional
在Guice requires three things中工作:
guice-persist.jar
@Transactional
方法的对象
private