JPA Fetch

JPA联级属性中的fetch是设置加载联级关系的属性,分为FetchType.LAZY懒加载和FetchType.EAGER急加载

FetchType.LAZY(懒加载):
被定义的属性所关联的数据不会马上从数据库中加载,在同一个session中,什么时候要用,就什么时候取(再次访问数据库)。但是在session关闭后,就不能再取了,会报异常:org.hibernate.LazyInitializationException。解决这个异常就需要将LAZY转为EAGER。一般@OneToMany为LAZY

FetchType.EAGER(急加载):
被定义的属性所关联的数据会马上加载到内存,所以session是否关闭都可以取出来。一般@ManyToOne为EAGER。

关于异常org.hibernate.LazyInitializationException的解决方法还有另一个,就是在实体类上面加上注解Proxy(lazy=false)将默认懒加载关掉

你可能感兴趣的:(JPA Fetch)