【发布时间】:2019-08-12 14:13:47
【问题描述】:
我有一个带有一些自定义查询的 JPA 存储库。我的任务是实现一个需要大量新查询的功能。可以大大减少它们数量的一件事是,如果我可以使用通配符作为布尔值。
我尝试修改查询以使用“LIKE %”,但 Spring Data 不喜欢它,抛出 numberFormatException(无限的 NaN)。
原始查询:
@Query("SELECT SUM(paymentSummary.paidAmount) FROM InvoiceLineItem invoice INNER JOIN PaymentSummary paymentSummary"
+ " ON invoice.invoiceKey=paymentSummary.invoiceKey"
+ " WHERE invoice.balanced=:balanced")
BigDecimal getInvoicePaidTotalByBalanced(@Param("balanced") boolean balanced);
理想情况下,我想使用相同的查询,但不是将它传递给 true 或 false,而是传递给它一个通配符,以便它对所有记录起作用,而不管是真/假状态。
到目前为止,我知道如何做到这一点的唯一方法是创建第二个查询,与第一个查询相同,但减去 where 子句。
【问题讨论】:
-
Like 只适用于字符串,所以我不这么认为。
标签: jpa spring-data-jpa spring-data wildcard jpql