hibernate 不要使用EAGER提取类型
示例
在映射两个实体之间的关系时,Hibernate可以使用两种类型的访存:EAGER和LAZY。
通常,EAGER获取类型不是一个好主意,因为它告诉JPA始终获取数据,即使不需要该数据也是如此。
例如,如果您有一个Person实体以及与之的关系Address是这样的:
@Entity
public class Person {
@OneToMany(mappedBy="address", fetch=FetchType.EAGER)
private List<Address> addresses;
}您查询的任何时间Person,名单Address的这Person也将被退回。
因此,不要使用以下方法映射您的实体:
@ManyToMany(mappedBy="address", fetch=FetchType.EAGER)
采用:
@ManyToMany(mappedBy="address", fetch=FetchType.LAZY)
另一个要注意的是关系@OneToOne和@ManyToOne。它们默认都是EAGER。因此,如果您担心应用程序的性能,则需要为这种类型的关系设置访存:
@ManyToOne(fetch=FetchType.LAZY)
和:
@OneToOne(fetch=FetchType.LAZY)
热门推荐
10 情侣祝福语古文简短独特
11 酒店伴娘祝福语简短
12 晚上甜蜜的祝福语简短
13 给新娘简短的祝福语
14 当爸爸的简短祝福语
15 洛宁新年祝福语大全简短
16 新年祝福语简短搞笑幽默
17 结婚祝福语大全简短霸气
18 新人结婚祝福语简短高端