Hibernate Criteria多对多的同一个对象

我有一个用多个关系链接到自己的用户实体。 基本上每个用户都可以是父母或孩子,我想要创建一个标准对象以便允许分页和其他过滤。 在用户中,我保持对其父母列表及其子女列表的引用,所以创建的中间表对于每对用户都会有两个条目。 基本上我是这样做的,因为能够有双向关系。

我目前的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
....
]
}

这是可能的标准?


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

链接地址: http://www.djcxy.com/p/37079.html

上一篇: Hibernate Criteria many to many same object

下一篇: Hibernate Criteria Query for Self Referencing Entity; incorrect result