Spring Data本机查询方法中的语法错误?

问题描述

我在JpaRepository界面中有此方法

@Query(name = "findInvoices",nativeQuery = true)
List<InvoiceDto> findInvoices(@Param("invoiceNumber") String invoiceNumber,@Param("clientName") String clientName,@Param("companyName") String companyName,@Param("paid") boolean paid);

我确定我没有通过null。我只是传递空字符串或非空字符串。

这是我被findInvoices引用的查询

@NamednativeQuery(name = "findInvoices",query = ""
            + "SELECT invoice_tour.invoice_id,'tour' AS type,invoice_tour.project_number,invoice_tour.client_name,invoice_tour.company_name,invoice_tour.after_tax,invoice_tour.invoice_status,invoice_tour.paid "
            + "FROM Invoice_tour invoice_tour "
            + "WHERE invoice_tour.paid = :paid OR invoice_tour.invoice_number LIKE %:invoiceNumber% OR invoice_tour.client_name LIKE %:clientName% OR invoice_tour.company_name LIKE %:companyName%",resultSetMapping = "findInvoicesMapping"),

我得到:

.InvalidDataAccessApiUsageException: UnkNown parameter name : invoiceNumber; nested exception is java.lang.IllegalArgumentException: UnkNown parameter name : invoiceNumber

我还尝试过在查询中编写症状部分:

invoice_tour.invoice_number LIKE '%:invoiceNumber%'

没有运气。

我能够在MysqL Workbench中使此查询(经过一些修改)工作。有什么建议吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)