Java Persistence API中的FetchType LAZY和EAGER之间的区别?

问题:

我是Java Persistence API和Hibernate的新手。
Java Persistence API中的FetchType.LAZYFetchType.EAGER有什么区别?

回答:

有时你有两个实体,它们之间有一个关系。例如,您可能有一个称为大学的实体,另一个实体叫做“学生”。
大学实体可能具有一些基本属性,如id,name,address等,以及一个名为students的属性:

public class University {
 private String id;
 private String name;
 private String address;
 private List<Student> students;

 // setters and getters
}

现在,当您从数据库加载大学时,JPA会为您加载其ID,名称和地址字段。但你有两个选择可供学生使用:将其与其余字段(即热切地)一起加载,或者在调用大学的getStudents()方法时按需加载(即懒惰)。
当一所大学有很多学生时,不需要加载所有学生就没有效率。所以在这样的情况下,你可以声明你希望学生在实际需要时被加载。这被称为延迟加载。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Difference between FetchType LAZY and EAGER in Java Persistence API?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

+ 4 = 11