spring boot 级联查询应用 LazyInitializationException 错误

错误信息:


org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.xxx.pojo.onttomany.Customer.orders, could not initialize proxy - no Session


属于懒加载异常:默认是开启的,在做级联查询的时候容易出现这样的问题。

原因是查询完主表(实体类)的时候,当次操作的数据库连接已经关闭了,因是懒加载,在使用到数据的时候才会去读取数据库中的数据,此时连接已经关闭了,就没有连接可用,就不能再对数据库进行操作。

三种解决方法:

1、关闭懒加载

spring boot 级联查询应用 LazyInitializationException 错误_第1张图片

2、使用@Transactional注解,把整个方法中的操作变成一组事务,都完成之后才关闭连接,有可能连接会一直被占用。

spring boot 级联查询应用 LazyInitializationException 错误_第2张图片

3、让连接在操作完成之后才关闭

spring boot 级联查询应用 LazyInitializationException 错误_第3张图片

你可能感兴趣的:(错误题集)