Hibernate@Transaction嵌套方法
我有这样的测试课程:Hibernate@Transaction嵌套方法,hibernate,transactions,Hibernate,Transactions,我有这样的测试课程: class Test1{ @Autowire Test2 t2; public void test(){ t2.method(); } } class Test2{ @Transaction public void method(){ Entity e=get(Entity.class,1); submethod(e); } protected void subme
class Test1{
@Autowire
Test2 t2;
public void test(){
t2.method();
}
}
class Test2{
@Transaction
public void method(){
Entity e=get(Entity.class,1);
submethod(e);
}
protected void submethod(Entity e){
e.getLazyField(); //this throws a LazyInitializationException
}
}
如果@Transaction方法调用了Test2.submethod(),为什么还会由于no会话而引发LazyInit错误?我还试图将“@Transaction”添加到submethod()中,但再次失败
我找到的唯一解决方案是在Test1.test()方法上设置@Transaction。但我不明白为什么
这是spring的transactionManager
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
我假设您使用的是Spring,您的意思是自动连线
和事务性
?测试的真正代码是什么,Spring上下文是如何配置的?是的,当然,我编写了事务管理器bean,它足够吗?