报错信息:
failed to lazily initialize a collection of role:com.example.entity.XXX, could not initialize proxy - no Session jpa
问题原因:
因为在尝试访问懒加载的关联集合时,没有在一个有效的事务上下文中进行,导致会话(Session)已经关闭,无法初始化代理对象。@OneToMany默认的加载方式就是懒加载
两种解决方法:
1. 在执行关联查询的方法上添加@Transactional,确保在一个事务的上下文中执行查询操作,这样可以保证在访问懒加载的关联集合时,会话仍然是打开的。
2.在@OneToMany属性后面添加fetch=FetchType.EAGER,@OneToMany(fetch=FetchType.EAGER)
在查询语句中使用JOIN FETCH来进行急切加载关联的集合,这样在查询时就会立即加载关联的实体,而不是使用懒加载。
2358

被折叠的 条评论
为什么被折叠?



