通过junit4进行测试,发现findById(int id)查询时存在异常,查看报红后,大致为没有会话,未进行代理初始化(懒加载异常),因此对该异常的处理方法进行总结,一起来看看吧!
测试报错--懒加载异常
1.解决方法
法一:在resources的配置文件application-dev.yml添加内容(注意缩进)
jpa:
show-sql: true
#关闭懒加载 否则通过id查询有问题
properties:
hibernate:
enable_lazy_load_no_trans: true
法二:在实体类上添加注解
@Proxy(lazy = false)
法三:在测试方法上添加@Transactional
@Transactional
@Test
public void findById() {
log.debug("findById-->"+ibs.findById(3));
}
法四:实现类中使用代理
@Override
public Book findById(int id){
//动态代理
//先获取对象,再使用get()获取属性
return dao.findById(id).get();
}