我有多个由标准构建的标准,我想在它们之间创建一个分离。
Criteria criteria1 = hibernateSession.createCriteria(MyClass);
criteria1.add(Restrictions.eq(field1, value1));
criteria1.add(Restrictions.eq(field2, value2));
criteria1.add(Restrictions.ne(field3, value3));
这将创建类似Where field1 = value1 and field2 = value and field3 != value3
.
然后
Criteria criteria2 = hibernateSession.createCriteria(MyClass);
criteria2.add(Restrictions.eq(field4, value4));
criteria2.add(Restrictions.eq(field5, value5));
这将创建类似 Where field4 = value4 and field5 = value5
.
我在这里的最终目标是在criteria1
和criteria2
之间创建一个分离,以获得Where (field1 = value1 and field2 = value and field3 != value3) OR (field4 = value4 and field5 = value5)
。
我知道休眠中的析取/共鸣,但是,它们只接受标准(而不是标准)。
你们中有人以前取得过类似成就吗?
创建两个 AND 条件。将它们作为 OR 添加到条件中。
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));