Spring Data JPA:如何形成条件查询?
Spring Data JPA: How to form a conditional query?
考虑一个包含 4 个字段的 table:id、name、age、date。现在我想使用这些字段查找数据库。很简单,我可以做到:
@Query("select d from data d where d.name=:name and d.age=:age and d.date=:date")
但问题是,姓名、年龄和日期是可选字段,即年龄、姓名、日期可以为空。如果年龄为空,那么我应该使用姓名和日期查找数据库,如果年龄和姓名为空,那么我应该单独使用日期查找数据库,依此类推...
是否可以通过一种简单的方式实现这一点,而不是针对每个场景形成不同的查询?因为我正在处理的真实场景有 6-7 个可选字段,并且为每个字段形成不同的查询看起来很奇怪。
对于可选字段,使用:@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)")
考虑一个包含 4 个字段的 table:id、name、age、date。现在我想使用这些字段查找数据库。很简单,我可以做到:
@Query("select d from data d where d.name=:name and d.age=:age and d.date=:date")
但问题是,姓名、年龄和日期是可选字段,即年龄、姓名、日期可以为空。如果年龄为空,那么我应该使用姓名和日期查找数据库,如果年龄和姓名为空,那么我应该单独使用日期查找数据库,依此类推...
是否可以通过一种简单的方式实现这一点,而不是针对每个场景形成不同的查询?因为我正在处理的真实场景有 6-7 个可选字段,并且为每个字段形成不同的查询看起来很奇怪。
对于可选字段,使用:@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)")