我需要使用AND/OR运算符来 hibernate 分离的条件查询。
我想将SQL等效为:
Select * from myTable where city in ( X, Y ) OR city in (A,B);
//注意,我需要在此处使用多个“In”
如何创建citeria查询以使用“或”运算符。
就像是
DetachedCriteria criteria = DetachedCriteria.forClass(
myClass.class)
.add(Property.forName("city").in(X,Y));
criteria.**Or**(add(Property.forName("city").in(X,Y));
不幸的是,条件中没有OR方法,只能在其中添加。
提前致谢
最佳答案
使用Restrictions.conjunction()
和Restrictions.disjunction()
创建条件的层次结构。
看看here - section 15.2和here
编辑:
我想您的代码Property.forName("city").in(X,Y))
是正确的(我不记得这个条款了)
DetachedCriteria criteria = DetachedCriteria.forClass(
myClass.class)
.add(Restrictions.disjunction()
.add( Property.forName("city").in(X,Y) )
.add(Property.forName("city").in(X,Y) )
);
关于hibernate - 如何在 hibernate 的独立条件查询中使用AND OR运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4281158/