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,它足够吗?