【问题标题】:Spring Data JPA- ignore parameter if it has a null value in between conditionSpring Data JPA-如果在条件之间具有空值,则忽略参数
【发布时间】:2021-07-12 16:54:25
【问题描述】:

我正在尝试编写以下查询

@Query(value = " " + "SELECT new om.gov.moh.ereferral.model.dto.ClinicalReferralStatisticsDto("
            + "SUM(CASE WHEN B.id = 1 THEN 1 END) AS OPD," + "SUM(CASE WHEN  B.id = 2 THEN 1 END)     AS IPD,"
            + "SUM(CASE WHEN B.id = 3 THEN 1 END)     AS DC," + "SUM(CASE WHEN B.id = 4 THEN 1 END )    AS PROC,"
            + " SUM(CASE WHEN B.id = 5 THEN 1 END)     AS SURGERY , SUM (CASE WHEN B.id IN (1,2,3,4,5)THEN 1 END)     AS Total)"
            + "FROM RefTbAppTransaction A, RefVwVisitType B "
            + "WHERE A.reqVisitType.id = B.id AND A.toEstCode = :toEstCode "
            + "AND A.referralDate BETWEEN TRUNC(:fromDate) AND TRUNC(:toDate) " 
            + "and (COALESCE(:fromEstCode, null) is null or A.fromEstCode in :fromEstCode)"
            )

现在它工作正常,但我希望如果 fromDate 为 null 以将所有数据带到 toDate 并且如果 toDate 为 null 以带来所有数据从 fromDate 中的选定日期到当前日期,如果两者都为 null 则忽略条件

【问题讨论】:

    标签: java oracle spring-boot jpa hql


    【解决方案1】:

    你可以试试下一个模式

    where (:fromDate is null or A.referralDate >= :fromDate)
    and (:toDate is null or A.referralDate <= :toDate)
    

    【讨论】:

    • 仍然给我`“发生空点异常......”`
    • 这是不同的问题。我帮不了你。
    猜你喜欢
    • 2021-12-04
    • 2019-07-02
    • 2020-05-31
    • 2015-11-13
    • 2019-06-14
    • 2018-08-01
    • 2021-06-01
    • 1970-01-01
    • 2016-12-18
    相关资源
    最近更新 更多