我想创建一个表单,它将根据表单输入为我生成sql查询。
例如,我有一个表People [id,name,age]和一个包含两个字段的表单: 姓名和年龄。
如果表单上的所有两个字段都已完成,则查询将如下所示:
List<People> findByNamendAge(String name, Int age);
但是如果只填写了这个名字,我想显示所有与该名称相对应的人,即使年龄是空白的。
(当然,在这个例子中,我可以创建一个findByName(String name)
和一个finByAge(Int age)
,一个简单的if / else会做,但我的真正问题包含一个包含大量输入的过滤器)
答案 0 :(得分:2)
您应该使用JPA CriteriaAPI。你可以在这里找到一个例子: