我是 Java Persistence API 和 Hibernate 的新手。
Java Persistence API 中的 FetchType.LAZY
和 FetchType.EAGER
有什么区别?
原文由 leon 发布,翻译遵循 CC BY-SA 4.0 许可协议
我是 Java Persistence API 和 Hibernate 的新手。
Java Persistence API 中的 FetchType.LAZY
和 FetchType.EAGER
有什么区别?
原文由 leon 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
2 回答1.1k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
1 回答4.2k 阅读
1 回答1.3k 阅读
1 回答729 阅读
有时您有两个实体,并且它们之间存在关系。例如,您可能有一个名为
University
的实体和另一个名为Student
的实体,一个大学可能有很多学生:University 实体可能具有一些基本属性,例如 id、name、address 等,以及一个名为 students 的集合属性,该属性返回给定大学的学生列表:
现在,当您从数据库中加载大学时,JPA 会为您加载其 id、name 和 address 字段。但是对于如何加载学生,您有两种选择:
getStudents()
方法时按需(即懒惰地)加载它。当一所大学有很多学生时,将所有学生一起加载是没有效率的,特别是当他们不需要时,在这种情况下,您可以声明您希望学生在实际需要时加载。这称为延迟加载。
这是一个示例,其中
students
被明确标记为急切加载:这是一个示例,其中
students
被明确标记为延迟加载: