我寫了以下的spring data JPA本地查詢。
@Query(value = "SELECT ID, REFERENCE FROM ORDER_MATCH where ORDER_REF IN : orderRef AND STATUS = :status", nativeQuery = true)
List<Object[]> retriveData(List<String> orderRef, String status)。
這段代碼給我帶來了以下錯誤。
SQL 錯誤。936, SQLState : 42000.
ORA-00936 : 缺少運算式
org.springframework.dao.InvalidDataAccessResourceUsageException : could not extract ResultSet; SQL[n/a]; nested exception is org. hibernate.exception.SQLGrammerException: could not extract ResultSet
但是,如果我去掉一個引數,那么代碼就能正常作業,例如下面的兩個組合就能正常作業,沒有任何問題,問題發生在我有兩個引數的時候,誰能幫我確定這里出了什么問題。非常感謝你的幫助。
使用一個引數的組合作業
@Query(value = "SELECT ID, REFERENCE FROM ORDER_MATCH where ORDER_REF IN : orderRef" , nativeQuery = true)
List<Object[]> retriveData(List<String> orderRef)。
@Query(value = "SELECT ID, REFERENCE FROM ORDER_MATCH where STATUS = : status", nativeQuery = true)
List<Object[]>retriveData(String status)。
只是為了補充一些細節,我使用了:? 的方式傳遞引數,結果也是一樣的錯誤
@Query(value = "SELECT ID, REFERENCE FROM ORDER_MATCH where ORDER_REF IN ( ? 1) AND STATUS = ?2", nativeQuery = true)
List<Object[]>retriveData(List<String>orderRef, String status) 。
uj5u.com熱心網友回復:
試試這樣的方法:
List<Object[]> retriveData( List<String> orderRef, String status) 。
還請注意,正如hibernate檔案中所說的那樣:
值的串列可以來自許多不同的來源。在
constructor_expression和collection_valued_input_parameter中,值的串列不能是空的,它必須至少包含一個值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/327143.html
標籤:
