JPA查询功能给出错误

时间:2017-01-20 03:41:56

标签: java oracle spring-data-jpa

在我的代码中,我为此编写了一个JPA Query函数,我将Set ids作为参数传递。

List<InvoiceBillData> findByInvoiceBillDataIdIn(Set<Long> failedInvBillDataIds); 

我的要求是我需要一个给定id的对象列表,这是一个主键。但是当我运行它时,JPA的自动生成的查询会抛出错误。目前,Set failedInvBillDataIds有2个ID,因此JPA生成如下查询。但是,它增加了额外的括号。

Error Code: 907
Call: SELECT inv_bill_data_id, account_id, billing_profile_id, CURRENCY, current_total, total_due, due_date, bill_id, previous_total, total_taxes FROM INVOICE_BILL_DATA WHERE (inv_bill_data_id IN ((?,?)))
        bind => [2 parameters bound]
Query: ReadAllQuery(referenceClass=InvoiceBillData sql="SELECT inv_bill_data_id, account_id, billing_profile_id, CURRENCY, current_total, total_due, due_date, bill_id, previous_total, total_taxes FROM INVOICE_BILL_DATA WHERE (inv_bill_data_id IN (?))")] with root cause

java.sql.SQLSyntaxErrorException: ORA-00907: missing right parenthesis

        at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450) ~[ojdbc7-12.1.0.2.jar:12.1.0.2.0]
        at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399) ~[ojdbc7-12.1.0.2.jar:12.1.0.2.0]
        at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1059) ~[ojdbc7-12.1.0.2.jar:12.1.0.2.0]
        at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:522) ~[ojdbc7-12.1.0.2.jar:12.1.0.2.0]

如何将Collection作为参数传递?我的查询功能有问题吗?

0 个答案:

没有答案