【发布时间】:2015-11-08 17:02:10
【问题描述】:
您好,我有一个问题,我不知道是否可能。我有一道。我有定义经典 OneToMany 关联的实体。
@OneToMany
public Set<InterviewEntity> getCreatedInterviews() {
return createdInterviews;
}
OneToMany -> fetch 的默认值是 Lazy。在 dao 我有方法 findById()...
见下文:
@Override
public T findById(long id) {
Session session = sessionFactory.openSession();
T entity = (T) session.get(thisClass, id);
session.close();
return entity;
}
我只希望这样:
EmployeeEntity resultEmployee = employeeDao.findById(employeeEntity.getEmployeeId());
resultEmployee.getCreatedInterviews();
我可以使用 Hibernate.initialize() 在具体的 Dao 类中 @Override 方法 findById,但我认为它不那么实用。有人知道吗?
【问题讨论】:
-
延迟加载并不意味着“集合永远不会被加载”。这意味着“只有当你真正需要它时,当调用它的方法时才会加载集合”。做你想做的事情没有问题,除非你在尝试访问集合之前关闭会话。
标签: java hibernate session orm