Fre*_*man 13 hibernate-criteria
我需要创建一个Hibernate标准限制,或3条件.问题是最后一个条件是使用AND运算符的条件.
我的第一个条件:
Criterion startInRange = Restrictions.between("expectedStartCanonicDate",
rangeStart, rangeEnd);
Run Code Online (Sandbox Code Playgroud)
我的第二个条件:
Criterion endInRange = Restrictions.between("expectedCompletionCanonicDate",
rangeStart, rangeEnd);
Run Code Online (Sandbox Code Playgroud)
我的第三个条件需要和以下两个条件一起:
criteria.add(Restrictions.le("expectedStartCanonicDate", rangeStart));
criteria.add(Restrictions.ge("expectedCompletionCanonicDate", rangeEnd));
Run Code Online (Sandbox Code Playgroud)
我想要做的限制是condition1或condition2或condition3.我找到了让我接近的例子.我可以一起使用LogicalExpression或者前两个条件,但是,我不确定如何处理or3个条件,特别是当最后一个条件实际上是两个独立的条件anded时.
有什么想法吗?弗雷德
JB *_*zet 47
与之相关的一系列限制or称为分离.与之相关的一系列限制and称为连接.
所以,你需要的是
所以这里:
Criterion startInRange = Restrictions.between("expectedStartCanonicDate", rangeStart, rangeEnd);
Criterion endInRange = Restrictions.between("expectedCompletionCanonicDate", rangeStart, rangeEnd);
Criterion thirdCondition =
Restrictions.conjunction().add(Restrictions.le("expectedStartCanonicDate", rangeStart))
.add(Restrictions.ge("expectedCompletionCanonicDate", rangeEnd));
Criterion completeCondition =
Restrictions.disjunction().add(startInRange)
.add(endInRange)
.add(thirdCondition);
criteria.add(completeCondition);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35996 次 |
| 最近记录: |