ima*_*yle 5 mysql spring jpa spring-data-jpa spring-boot
考虑一个包含 4 个字段的表:id、name、age、date。现在我想使用这些字段查找数据库。所以这很简单,我可以这样做:
@Query("select d from data d where d.name=:name and d.age=:age and d.date=:date")
Run Code Online (Sandbox Code Playgroud)
但问题是,姓名、年龄和日期是可选字段,即年龄、姓名、日期可以为空。如果年龄为空,那么我应该使用名称和日期查找数据库,如果年龄和名称为空,那么我应该单独使用日期查找数据库,依此类推...
是否可以通过简单的方式实现这一点,而不是为每个场景形成不同的查询?因为我正在处理的真实场景有 6-7 个可选字段,并且为每个字段形成不同的查询看起来非常奇怪。
小智 14
对于可选字段,请使用:
@Query("select d from data d
where (:name is null or d.name=:name)
and (:age is null or d.age=:age)
and (:date is null or d.date=:date)")
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12350 次 |
最近记录: |