使用Spring数据JPA,如何为过滤器表单创建动态查询

时间:2017-10-09 15:08:41

标签: java spring hibernate spring-data spring-data-jpa

我想创建一个表单,它将根据表单输入为我生成sql查询。

例如,我有一个表People [id,name,age]和一个包含两个字段的表单: 姓名和年龄。

如果表单上的所有两个字段都已完成,则查询将如下所示:

 List<People> findByNamendAge(String name, Int age);

但是如果只填写了这个名字,我想显示所有与该名称相对应的人,即使年龄是空白的。

(当然,在这个例子中,我可以创建一个findByName(String name)和一个finByAge(Int age),一个简单的if / else会做,但我的真正问题包含一个包含大量输入的过滤器)

1 个答案:

答案 0 :(得分:2)

您应该使用JPA CriteriaAPI。你可以在这里找到一个例子:

Conditional where clause in JPA criteria query