我正在使用guice 4.1以及持久扩展,并希望@Transactional能够正常工作,但事实并非如此。我按照维基阅读了这篇文章,但无济于事:
Managing transactions in JavaSE with Hibernate and Guice
重新迭代...我正在做:
答案 0 :(得分:0)
在我们当前的Sprint中升级库时,我们遇到了类似的问题。我们所有失败的单元测试都与我们正在注入的类相关,但不受模块约束。
(使用Guice 4.0不是问题)。
如果我们绑定一个接口或一些特殊要求,我们倾向于只绑定我们的类。因此,如果我们有一个具有零参数构造函数或使用@Inject注释的简单类,我们就不会将它绑定在模块中。
public class AA {
public AA() {
}
@Transactional
public void test() {
System.out.println("" + getClass().getName());
}
}
如果注入了AA类,则调用test()将输出
package.test.AA$$EnhancerByGuice$$e2d19b62
升级到Guice 4.1后,输出
package.test.AA
将以下内容添加到模块会将注入更改回代理。 @Transactional使用AOP的方式是什么
bind(AA.class);