TestNG单元testcase中的延迟初始化异常,用于测试Spring服务层

TestNG单元testcase中的延迟初始化异常,用于测试Spring服务层,spring,hibernate,service,testng,Spring,Hibernate,Service,Testng,在使用TestNG测试用例测试spring服务层时,我遇到了延迟初始化异常。你能帮我解决这个问题吗。不确定在下面的测试用例中我是否遗漏了任何东西。但是,如果我在Dao层中为相同的方法创建并执行testcase,那么它就可以正常工作了 <set name="validResponses" lazy="true" inverse="true" 在会话和事务中完成。当该方法返回时,提交事务,并关闭会话。因此,任何不急于加载的字段都处于未初始化状态。在此之后尝试初始化它们将导致您看到的LazyI

在使用TestNG测试用例测试spring服务层时,我遇到了延迟初始化异常。你能帮我解决这个问题吗。不确定在下面的测试用例中我是否遗漏了任何东西。但是,如果我在Dao层中为相同的方法创建并执行testcase,那么它就可以正常工作了

<set name="validResponses" lazy="true" inverse="true"
会话
事务
中完成。当该方法返回时,提交
事务
,并关闭
会话
。因此,任何不急于加载的字段都处于未初始化状态。在此之后尝试初始化它们将导致您看到的
LazyInitializationException

简单的解决方案是将
lazy=“true”
更改为
lazy=“false”
,但这可能不是您一直想要的

相反,在需要时,可以更改
InspectionStepQuestionService
方法以完全初始化实体

Hibernate.initialize(inspectionQuestion /* or entity to return */);

通过在测试类中添加以下注释,我能够维护会话@TransactionConfiguration(transactionManager=“hibernateTransactionManager”,defaultRollback=true)。

让我们看看要启动的
InspectionQuestion
类。我已经为同一个类添加了InspectionQuestion类和hbm。实际上,我不应该同时更新hbm和InspectionStepQuestionService。我需要做的就是更新InspectionStepQuestionServiceImplTest类。是否可以通过更新我的testNG类(即InspectionStepQuestionServiceImplTest类)来避免异常感谢Sotirios Delimanolis。我已经找到了这个问题的另一个解决方案。通过在测试类中添加以下注释,我能够维护会话@TransactionConfiguration(transactionManager=“hibernateTransactionManager”,defaultRollback=true)。
Hibernate.initialize(inspectionQuestion /* or entity to return */);