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())); 

したがって、基本的には、上記のコードの2行目と3行目に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 に答える