CriteriaBuilder cb = this.getEntityManager().getCriteriaBuilder();
CriteriaQuery cq = cb.createQuery(Employee.class);
Root root = cq.from(Employee.class);
Path p_a = root.get("a");
Path p_b = root.get("b");
Path p_c = root.get("c");
Predicate p = cb.and(cb.equal(p_a , "1"), cb.equal(p_b , "2"));
p = cb.or(cb.equal(p_c , "3"), p);
执行上述代码后,发出的sql为
where
employee.c = "3"
or employee.a = "1"
and employee.b = "2"
但是我想要的结果是:
where
employee.c = "3"
or (
employee.a = "1"
and employee.b = "2"
)
这个该怎么改呢?