Как я могу использовать пружину JPA Спецификация для условия, как показано ниже:
Где cond1 и (cond2 или cond3)
И
Где (cond1 и cond2) или cond3 .
Код спецификации, как показано ниже:
Specification<DocRecord> updatedAtAndCountGTZeroSpec = new Specification<DocRecord>() {
@Override
public Predicate toPredicate(Root<DocRecord> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
return cb.or(
(cb.and(
cb.lessThanOrEqualTo(root.get("updatedAt"),new Timestamp(now.getTimeInMillis())),
cb.lessThan(root.get("attemptCount"), 3))
),
(cb.equal(root.get("attemptCount"), 0))
);
}
};
выше - производство, где условие как ниже:
где docrecord0_.updated_at <?
и docrecord0_.attempt_count <3
или docrecord0_.attempt_count = 0 </strong>