java - 如果在 Spring Data JPA 中为 null 或为空,如何在 @Query 中跳过 @Param

标签 java spring hibernate spring-data-jpa jpql

@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 或为空?

最佳答案

尝试改变

" and ds.statusCode in :paymentStatuses"

进入

" and (:paymentStatuses is null or ds.statusCode in :paymentStatuses)"

关于java - 如果在 Spring Data JPA 中为 null 或为空,如何在 @Query 中跳过 @Param,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46789664/

相关文章:

java - 在当前 View 中定位一个元素

java - 从 Runnable() 启动一个 Activity

java - JSP - 包含资源文件夹中的文件

java - 更新包含对象字段的实体

hibernate - Grails GORM级联删除映射

java - 无法在Java Applet中实现play方法,JMF安装不正确

java-me - Java ME 中是否提供所有 Java SE 类?

java - spring JPA的FindBy在传递空参数时使线程挂起

使用 Maven 的 Spring 自定义命名空间

sql - 查询是否存在多个多对多关系