我有一个GET端点,它根据以下参数获取数据。 firstName是必需的,rest all是可选的。
{
"firstName:"",
"lastName:"",
"Gender:"",
"city"""
}
我应该如何处理数据库查询?我正在使用Sring Data JPA, 我试过了
findByFirstNameOrLastNameOrGenderOrCity(名字,姓氏,性别,城市)
如果端点的使用者没有发送值,则不确定使用@Query注释的本机sql查询是否可以工作,因为除firstName之外的任何值都可以为null。请帮助
答案 0 :(得分: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);