我需要使用许多OR构建BooleanBuilder条件。

我有一个带有2个输入参数的方法:

User findUser(String inputname, List<String> inputcities);


我有一个代码:

BooleanBuilder builder = new BooleanBuilder();
builder.and(user.name(inputname));


作为OR,我应该如何为许多城市动态构建它?
要检查用户是否来自数组中给出的那些城市之一?
因此数组可能包含5、10个城市。我如何不进行编码就可以做到?

最佳答案

假设用户实体具有引用城市实体的外键,建议您使用类似于以下内容的sql查询:

select  u.*
  from  User u
  where u.NAME = :inputname
    and u.CITY_ID in :inputcities


实现它的最简单方法是使用Spring Data的JPA存储库。
如果这样做,则不需要任何BooleanBuilder或其他自定义的东西。

如果仍然不清楚,请随时询问。

08-15 15:06