我正在尝试创建一个具有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()));
然而,这不会编译。那我该怎么做呢?有什么建议吗?
提前致谢。 欢呼声
答案 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())));