Hibernate 懒加载 Unable to evaluate the expression Method threw ‘org.hibernate.LazyInitializationExcept

这是因为使用JPA,而且实体关系中含有ManyToOne,OneToMany这样的关系,而Hibernate采用的是默认延迟加载策略, 也就是用到的时候才去加载,这样可以提高一些性能。比如有一个User表,里面有一个List roles的属性,Hibernate在查询User对象只会查询出基础属性如name,location,不会查询roles,Hibernate查询的session就已经关闭了,等需要getRoles时,再去查询roles。如果使用断点调试,就不会启动session,就报错了。

解决方案

在OneToMany和ManyToOne加上饥饿加载的代码,就不会懒加载了

@OneToMany(mappedBy = "userId",fetch = FetchType.EAGER) 

你可能感兴趣的:(JAVA)