时间:2010-07-26 08:01:23

标签: java hibernate criteria orm

3 个答案:

答案 0 :(得分:4)

看起来你确实需要一个OR:

Criterion description = Restrictions.like("description", searchWord);
Criterion name = Restrictions.like("name", searchWord);
LogicalExpression orExp = Restrictions.or(description, name);
criteria.add(orExp);

答案 1 :(得分:2)

通过使用Disjunction,我们添加了任意数量的列,最后将Disjunction obj添加到条件中。

Disjunction disCriteria = Restrictions.disjunction();
disCriteria.add(Restrictions.eq("name", searchWord));
disCriteria.add(Restrictions.eq("description", searchWord));
criteria.add(disCriteria);

答案 2 :(得分:1)

我使用自定义sql限制解决了这个问题,例如:

Object[] values = {  }; // values here
Type[] types = {  }; // value types here
criteria.add(Restrictions.sqlRestriction("sql query here", values, types));