【问题标题】:Spring Data JPA: How to form a conditional query?Spring Data JPA:如何形成条件查询?
【发布时间】:2022-01-06 23:04:23
【问题描述】:

考虑一个包含 4 个字段的表:id、name、age、date。现在我想使用这些字段查找数据库。所以这很简单,我可以做到:

@Query("select d from data d where d.name=:name and d.age=:age and d.date=:date")

但问题是,姓名、年龄和日期是可选字段,即年龄、姓名、日期可以为空。如果年龄为空,那么我应该使用名称和日期查找数据库,如果年龄和名称为空,那么我应该单独使用日期查找数据库,依此类推...

是否可以通过简单的方式实现这一点,而不是为每个场景形成不同的查询?因为我正在处理的真实场景有 6-7 个可选字段,并且为每个字段形成不同的查询看起来非常奇怪。

【问题讨论】:

标签: mysql spring spring-boot jpa spring-data-jpa


【解决方案1】:

对于可选字段,使用这个:@Query("select d from data d where (:name is null or d.name=:name) and (:age is null or d.age=:age) and (:日期为空或 d.date=:date)")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 2019-02-20
    • 2017-04-25
    • 2016-02-27
    • 2018-02-17
    • 1970-01-01
    相关资源
    最近更新 更多