Java 如何使用Hibernate创建或包含多个标准的块?

Java 如何使用Hibernate创建或包含多个标准的块?,java,hibernate,Java,Hibernate,我有多个标准构建出来的标准,我想创造一个他们之间的脱节 Criteria criteria1 = hibernateSession.createCriteria(MyClass); criteria1.add(Restrictions.eq(field1, value1)); criteria1.add(Restrictions.eq(field2, value2)); criteria1.add(Restrictions.ne(field3, value3)); 这将创建类似于的内容,其中f

我有多个标准构建出来的标准,我想创造一个他们之间的脱节

Criteria criteria1 = hibernateSession.createCriteria(MyClass);
criteria1.add(Restrictions.eq(field1, value1));
criteria1.add(Restrictions.eq(field2, value2));
criteria1.add(Restrictions.ne(field3, value3));
这将创建类似于
的内容,其中field1=value1和field2=value和field3!=值3

那么

这将创建类似于
的内容,其中field4=value4和field5=value5

我的最终目标是在
criteria1
criteria2
之间创建一个分离点,使
在哪里(field1=value1和field2=value和field3!=value3)或(field4=value4和field5=value5)

我知道hibernate中的析取/连接,但是,它们只接受标准(而不接受标准)

你们中有没有人曾经取得过类似的成就?

创建两个标准。 将它们作为或添加到条件中

Criteria criteria = hibernateSession.createCriteria(MyClass);
Criterion rest1= Restrictions.and(Restrictions.eq(field1, value1), 
           Restrictions.eq(field2, value2),
           Restrictions.ne(field3, value3));
Criterion rest2= Restrictions.and(Restrictions.eq(field4, value4),
           Restrictions.eq(field5, value5));
criteria.add(Restrictions.or(rest1, rest2));

谢谢你的回答。对于我给出的例子来说,它是有效的。然而,我正在寻找一种更通用的方法,可以在标准列表之间创建一个分离。你对如何做有什么想法吗?对不起,我不知道如何通过多个标准来做(不确定是否可能)。也许对您来说,使其通用化的最佳方法是使用标准,然后使用与标准的析取来构建标准
Criteria criteria = hibernateSession.createCriteria(MyClass);
Criterion rest1= Restrictions.and(Restrictions.eq(field1, value1), 
           Restrictions.eq(field2, value2),
           Restrictions.ne(field3, value3));
Criterion rest2= Restrictions.and(Restrictions.eq(field4, value4),
           Restrictions.eq(field5, value5));
criteria.add(Restrictions.or(rest1, rest2));