我有一个将lazy属性设置为false的父子关系,因此当我通过查询获得父类时,我也将获得他的孩子。

通常最好加载所有东西,父母-孩子,但是在一种情况下,我不需要这样做。

有没有一种方法可以避免在我获得父母的情况下获取孩子而不改变lazy = false的关系?

最佳答案

不,不可能。如果只有一种绝对不能获取关联的情况,那么您唯一可以做的就是使用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;

08-08 01:44
查看更多