我无法获得预期的分页结果。我的同一个父对象的每个子条目都获得了多个条目作为分页输出。但是,要求每个父对象都有一个条目,并附加所有子对象。
我尝试使用criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
。
但是,它只返回一个父项,并且仅附加一个子项。
提前谢谢! :)
对象映射:
产品--OneToOne--所有者
所有者--OneToMany--用户(元素集合)
所有者--OneToMany--组(ElementCollection)
代码段:
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Product.class);
criteria.createCriteria("owner", "o").createAlias("o.users", "u", JoinType.LEFT_OUTER_JOIN);
criteria.createAlias("o.groups", "g", JoinType.LEFT_OUTER_JOIN);
Criterion userCriterion = Restrictions.eq("u.elements", <USER_NAME>);
Criterion groupCriterion = Restrictions.in("g.elements", <GROUP_LIST>);
criteria.add(Restrictions.or(userCriterion, groupCriterion));
criteria.setFirstResult(<page> * <numberPerPage>);
criteria.setMaxResults(<numberPerPage>);
return (List<Product>) criteria.list();