0

我正在尝试创建一个具有 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()));

但是,这不会编译。那么我该如何实现呢?有什么建议么?

提前致谢。干杯

4

1 回答 1

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())));
于 2012-10-28T16:28:13.327 回答