【发布时间】:2010-08-20 07:08:12
【问题描述】:
假设我有一个:
class Student {
int id;
String name;
List<Course> courses; //Lazily loaded as per Hiberante config
}
现在假设我有一个学生列表,为了优化所有这些学生的获取列表,我将批量选择它们,而不是让 Hibernate 一个一个地调用单独的 SQL。我无法关闭延迟加载,因为在许多其他代码路径中我不会访问课程属性。
我当然可以编写一个函数,接收 courseId 列表并返回一个 List,然后将这些对象附加到 Hibernate 会话,但这些对象不会与 Hibernate 加载的 Student 对象相关联。如果我调用类似 student.setCourses() 的方法,那么我会遇到 Hibernate 会认为会话是脏的并尝试更新 Student 对象的风险。
我真的很想听听在使用 Hibernate 时遇到类似问题的人的意见。
【问题讨论】:
标签: java hibernate lazy-loading