복붙노트

[SPRING] @Query에서 @Param을 건너 뛰는 방법 Spring 데이터 JPA에서 null 또는 비어있는 경우

SPRING

@Query에서 @Param을 건너 뛰는 방법 Spring 데이터 JPA에서 null 또는 비어있는 경우

@Query(value = "Select f from Documents f " +
        "RIGHT JOIN f.documentStatus ds " +
        "where f.billingAccount.accountId  in :billingAccountIdList " +
        " and ds.statusCode in :paymentStatuses" +
        " and f.paymentDate < :paymentDate")
List<FinancialDocumentEntity> getFinancialDocumentsOverdue(@Param("billingAccountIdList")List<String> billingAccountIdList,
                                                           @Param("paymentStatuses") List<String> paymentStatuses,
                                                           @Param("paymentDate") Date paymentDate);

위와 같은 쿼리가 있습니다. 예를 들어 @Param ( "paymentStatuses") 쿼리 매개 변수가 null이거나 비어있는 경우 검색 매개 변수를 건너 뛸 수 있습니까?

해결법

  1. ==============================

    1.변경 시도

    변경 시도

    " and ds.statusCode in :paymentStatuses"
    

    으로

    " and (:paymentStatuses is null or ds.statusCode in :paymentStatuses)"
    
  2. from https://stackoverflow.com/questions/46789664/how-to-skip-param-in-query-if-is-null-or-empty-in-spring-data-jpa by cc-by-sa and MIT license