【问题标题】:Spring data JPA with multiple parameters which may be null具有多个可能为空的参数的 Spring 数据 JPA
【发布时间】:2015-12-30 06:50:00
【问题描述】:

我正在使用 Spring JPA 数据存储库对可能/可能不为空的参数数量进行查询。

我使用以下存储库类根据这三个参数进行查询。 员工、开始日期和结束日期

@Repository
public interface EmployeeReportRepo extends JpaRepository<EmployeeReport, Long>{
    public EmployeeReport findFirstByEmployeeAndDate(Employee employee , Date date);
    public List<EmployeeReport> findByEmployeeAndDateFilter(Employee employee, Date startDate, Date endDate);
}

以下是命名查询:

@NamedQuery(name = "EmployeeReport.findByEmployeeAndDateFilter", query = "SELECT e FROM employee_report e WHERE e.employee="
        + "?1" + " and e.date >=" + "?2" + " and e.date<=" + "?3")

但问题是这些参数可能为空,在这种情况下我的查询将失败。你这个我怎么办。一种解决方案可能是创建多个查询以促进空条件的每种组合,但这不是决定性的。任何建议我还能使用什么?

【问题讨论】:

标签: spring spring-data-jpa


【解决方案1】:

在这种情况下,我建议你放弃接口存储库,使用 JavaEE EntityManager 制作自定义存储库。

您可以在存储库中处理许多案例。 例如在您的情况下,只需添加一个 if 子句即可处理空参数。 而且,为了进一步使用,您可以在其中添加排序顺序。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2015-07-25
    • 2019-06-21
    • 2018-01-27
    • 1970-01-01
    • 2014-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多