【问题标题】:How to dynamically build booleanbuilder condition with many ORs如何使用许多 OR 动态构建 booleanbuilder 条件
【发布时间】:2019-07-01 12:58:22
【问题描述】:

我需要构建一个包含许多 OR 的 BooleanBuilder 条件。

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

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

我有一个代码:

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

作为 OR,我应该如何为许多城市动态构建它? 检查用户是否来自数组中给出的那些城市之一? 所以数组可能包含 5、10 个城市。如何在不编码的情况下制作它?

【问题讨论】:

    标签: java jquery mysql hibernate jpa


    【解决方案1】:

    假设用户实体有一个外键,引用一个城市实体,我建议你使用类似下面的sql-query:

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

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

    如果仍有不清楚的地方,请随时提问。

    【讨论】:

    • 谢谢!这部分是可以理解的。但我需要 BooleanBuilder 和 JPA 的形式。有可能吗?
    • @jack,您是否需要多个 OR 形式的查询,或者最好使用 IN 子句?
    • 这并不重要。两种情况都很好。就像我的主题描述中提到的那样,以 BooleanBuilder 的形式出现。
    • 尝试使用以下代码:BooleanBuilder builder = new BooleanBuilder(user.name.eq(inputname)).and(user.city.in(inputcities));
    猜你喜欢
    • 1970-01-01
    • 2021-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多