假设我有一个Appointment
表和一个Person
表,其中一个Appointment
有很多Person
s。
如果我想查找列表中至少包含一个人的所有约会,我将执行以下操作:
Collection<Person> personsList = getInterestedPersons();
BooleanExpresssion expr = appointment.persons.any().in(personsList)
但是,我真正想要的是找到所有名单中所有人员的约会。
那么,我该如何构造一个BooleanExpression
过滤器,使我可以过滤所有拥有所有人员的约会?
注意:我必须创建一个BooleanExprsesion,因为这是较大的Appointment通用过滤器的一部分,所有BooleanExpression都将and()在一起。
另一个要注意的是,我没有找到仅具有这些人员的约会,而至少只有列表中的所有那些。
在这种情况下,我想以下应该起作用:
BooleanBuilder personClause = new BooleanBuilder();
for (Person person : personList)
{
personClause.and(appointment.persons.contains(person));
}
query.where(personClause); // to add the clause
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句