5

我有一个与惰性属性集false的父子关系,所以当我通过查询获得父类时,我也获得了他的孩子。

通常最好加载所有内容,父子,但在一种情况下,我不需要这样做。

当我在不改变lazy=false关系的情况下获得父母时,有没有办法避免获取孩子?

4

1 回答 1

4

不,这是不可能的。如果您只有一种不能获取关联的情况,您唯一可以做的就是使用 DTO 而不是您的实体,并使用投影来仅检索您想要的内容:

String hql = "select firstName, lastName from User u where ...";
List<Object[]> rows = session.createQuery(hql).list();
List<UserDTO> users = new ArrayList<UserDTO>(rows.size());
for (Object[] row : rows) {
    users.add(new User((String) row[0], (String) row[1]));
}
return users;
于 2012-05-25T10:00:24.847 回答