我正在使用Spring JPA数据存储库来形成对可能/可能不为null的参数数量的查询。
我使用以下存储库类来基于这三个参数进行查询。 employee,startDate和endDate
@NamedQuery(name = "EmployeeReport.findByEmployeeAndDateFilter", query = "SELECT e FROM employee_report e WHERE e.employee="
+ "?1" + " and e.date >=" + "?2" + " and e.date<=" + "?3")
以下是命名查询:
{{1}}
但问题是这些参数可能为null,在这种情况下我的查询将失败。你是怎么做到这一点的。一种解决方案可以是创建多个查询以促进空条件的每个组合,但这不是决定性的。有什么建议可以使用吗?
答案 0 :(得分:0)
在这种情况下,我建议您放弃接口存储库并使用JavaEE EntityManager创建自定义存储库。
您可以在存储库中处理许多情况。 例如在你的情况下,只需添加一个if子句就可以处理null参数。 而且,为了进一步使用,您可以在其中添加排序顺序。
希望这可以帮到你。