如何在hibernate中使用AND OR运算符分离条件查询

Ale*_*exs 5 hibernate

我需要使用AND/OR运算符来休眠分离的条件查询.我想模拟SQL等效于:

Select * from myTable where city in ( X, Y ) OR city in (A,B);  
Run Code Online (Sandbox Code Playgroud)

//注意我需要在这里使用多个'In'

如何创建citeria查询以使用'OR'运算符.

就像是

DetachedCriteria criteria = DetachedCriteria.forClass(
    myClass.class)
   .add(Property.forName("city").in(X,Y));
criteria.**Or**(add(Property.forName("city").in(X,Y));
Run Code Online (Sandbox Code Playgroud)

不幸的是,标准中没有OR方法,只在那里添加.

提前致谢

Gai*_*aim 11

使用Restrictions.conjunction()Restrictions.disjunction()创建条件层次结构.

这里 - 第15.2节这里


编辑:

我想你的代码Property.forName("city").in(X,Y))是正确的(我不记得这个clausule)

DetachedCriteria criteria = DetachedCriteria.forClass(
    myClass.class)
   .add(Restrictions.disjunction()
       .add( Property.forName("city").in(X,Y) )
       .add(Property.forName("city").in(X,Y)  )
   );
Run Code Online (Sandbox Code Playgroud)