带有可选参数的 jpa 查询

zil*_*anu 5 spring hibernate jpql spring-data-jpa

我正在使用 Spring Data Rest JPA,它根据方法名称在内部实现查询。

我在我的存储库界面中编写了以下方法,它应该列出一个状态下的所有用户,如果存在姓名和/或年龄,它应该过滤结果。

StateId 是必需的,但名称和年龄是可选的过滤器参数

public List<User> findByStateIdAndNameOrAge(Integer stateId, String name , Integer age, Pageable pageable);
Run Code Online (Sandbox Code Playgroud)

我没有得到任何结果。我哪里做错了?

Ami*_*thi 1

你可以试试

您的方法定义没有错误。

public List<User> findByStateIdAndNameOrAge(Integer stateId, String name , Integer age, Pageable pageable);
Run Code Online (Sandbox Code Playgroud)

但是您不能将空参数传递给此方法,因此如果您将任何参数设置为空,则该方法将不起作用。