Java JPA条件或(表达式和表达式)

Java JPA条件或(表达式和表达式),java,hibernate,jpa,criteria,Java,Hibernate,Jpa,Criteria,我的JPA查询有问题 事实上,我希望有这样一个SQL查询: OR( foo = true AND foo1 = true ), OR( foo1=true AND foo2=true AND foo3=true ) 这是我的JPA查询: predicates.add( criteriaBuilder.or( criteriaBuilder.and(criteriaBuilder.equal(join.get("fo

我的JPA查询有问题

事实上,我希望有这样一个SQL查询:

OR( 
   foo = true AND foo1 = true
),
OR( 
   foo1=true AND foo2=true AND foo3=true
)
这是我的JPA查询:

predicates.add(
            criteriaBuilder.or(
                    criteriaBuilder.and(criteriaBuilder.equal(join.get("foo"),true),
                    criteriaBuilder.equal(join1.get("foo"),true)
                                ),
                        criteriaBuilder.and(
                                criteriaBuilder.equal(join2.get("foo"),true),
                                criteriaBuilder.equal(join21.get("foo"),true),
                                criteriaBuilder.equal(join22.get("foo"),true)
                                )
                        )
                );
但我有:

OR foo = true 
AND foo1 = true
OR foo1=true 
AND foo2=true 
AND foo3=true

我不太明白你的意思。或者(),或者()对我来说没有意义,您在Criteria API中输入的内容相当于JPQL或SQL中的“(foo=true和foo1=true)或者(foo1=true和foo2=true和foo3=true)”。您的意思是在您的问题中说您正在寻找“(foo=true和foo1=true)或者(foo1=true和foo2=true和foo3=true)”?你的JPA实现没有把大括号放进去?我知道我使用的(DataNucleus)包括大括号和/或分隔符。如果是这种情况,请在JPA实现上提出一个bug