1

我有一个 GET 端点,它根据以下参数获取数据。firstName 是必需的,其余都是可选的。

{

"firstName:"",
"lastName:"",
"Gender:"",
"city"""

}

我应该如何处理数据库查询?我正在使用 Sring Data JPA,我已经尝试过

findByFirstNameOrLastNameOrGenderOrCity(名字,姓氏,性别,城市)

不确定使用 @Query 注释的本机 sql 查询是否可以工作,因为如果端点的使用者没有发送值,则除了 firstName 之外的任何值都可以为 null。请帮助

4

1 回答 1

0

如果你需要这样的东西:

GET /myEntities?firstName=bla-bla&lastName=bla-bla&gender=1&city=bla-bla

其中firstName是强制性的,其余都是可选的,

那么你可以使用这样的查询:

@Query("select e from MyEntity e where e.firstName = ?1 " +
    "and (?2 is null or e.lastName = ?2) " + 
    "and (?3 is null or e.gender = ?3) " +
    "and (?4 is null or e.city = ?4)")
List<MyEntities> getByFilter(String firstName, String lastName, Boolean gender, String city);
于 2018-03-09T10:11:45.637 回答