欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

hiberante 注解懒加载 配置

程序员文章站 2022-04-17 09:06:26
...

如果是EAGER,那么表示取出这条数据时,它关联的数据也同时取出放入内存中 

如果是LAZY,那么取出这条数据时,它关联的数据并不取出来,在同一个session中,什么时候要用,就什么时候取(再次访问数据库)。 

但是,在session外,就不能再取了。用EAGER时,因为在内存里,所以在session外也可以取。 

一般只在一边设Eager,JPA接口默认为一对多为Lazy,多对一为Eager,但是Hibernate反向工程生成Entity时,多对一为Lazy,需要手动改为Eager。

例子:

       //@ManyToOne(cascade = CascadeType.REFRESH,fetch = FetchType.LAZY)
	@ManyToOne(cascade = CascadeType.REFRESH)
	@JoinColumn(name="AccidentEnter")
	public EnterpriseBaseInfo getEnterpriseBaseInfo() {
		return enterpriseBaseInfo;
	}

 

@ManyToOne(optional = true, fetch = FetchType.EAGER)
@JoinColumn(name = "role_id",columnDefinition = "varchar(255) comment '角色id'")
public Role getRole() {
   return role;
}

 optional = true 为可以为空

fetch = FetchType.EAGER 没有懒加载直接查出来

 

 fetch = FetchType.LAZY为懒加载模式

相关标签: 懒加载