Hibernate Restcrition Criteria或DetachedCritera

时间:2012-10-28 16:06:28

标签: hibernate criteria restrictions detachedcriteria

我正在尝试创建一个具有OR限制的分离标准

    DetachedCriteria subquery = DetachedCriteria.forClass(Component.class);
    subquery.createCriteria("review").add(Restrictions.eq("owner", user));
    subquery.createCriteria("review").createCriteria("observers").
                                   add(Restrictions.eq("id", user.getId())); 

所以我需要将Restriction.or放在上面代码的第二行和第三行,但是Restriction.or除了DetachedCritera之外没有。所以我需要做这样的事情

  Restrictions.or(
        subquery.createCriteria("review").add(Restrictions.eq("owner", user)),
        subquery.createCriteria("review").createCriteria("observers").
                                   add(Restrictions.eq("id", user.getId()));

然而,这不会编译。那我该怎么做呢?有什么建议吗?

提前致谢。 欢呼声

1 个答案:

答案 0 :(得分:0)

DetachedCriteria subquery = DetachedCriteria.forClass(Component.class, "component");
subquery.createAlias("component.review", "review");
subquery.createAlias("review.observers", "observer", Criteria.LEFT_JOIN);
subquery.add(Restrictions.or(Restrictions.eq("review.owner", user),
                             Restrictions.eq("observer.id", user.getId())));