Hibernate Criteria多对多的对象

时间:2013-09-07 19:14:04

标签: hibernate jpa

我有一个User实体,它与自身链接有多对多的关系。基本上每个用户都可以是父母或孩子,我想创建一个标准对象,以便允许分页和其他过滤。 在用户中,我保留其父项列表及其子项列表的引用,因此创建的中间表将为每个用户配对提供两个条目。 基本上我是这样做的,因为它能够具有双向关系。

我当前的Criteria对象是:

Criteria c = getSession().createCriteria(User.class)
                 .createAlias("parents", "p")
                 .add(Restrictions.eq("p.id", this.getId()))
                 .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

然后我根据该标准应用过滤。

但是此查询仅返回将此用户作为父级的所有子级的列表。 我想得到父母和孩子。 例如,期望的响应将是这样的:

  

{
      下一页:XXX,
      以前{} XXX,
      数据[
         {parentuser},
         {child1},
         {}的child2
         ....
      ]
    }

可以使用标准吗?

1 个答案:

答案 0 :(得分:0)

好的,所以最简单的解决方案是将父母作为一个孩子添加到自己,因为这是一个很多很多关系,这很好。 不是一个干净的解决方案,但它按预期工作。