How to work around Java JPA IllegalArgumentException

starzodiac
Dec 30, 2021

How to work around Java JPA occur IllegalArgumentException — Parameter with that name [name] did not exist

最近使用 Java JPA 遇到一個神奇事件,當我 SQL Query 比較長的時候,setParameter() 會出現如標題一樣的 exception

但是把 SQL 單獨拉出來到 DBeaver 上執行的時候(DBeaver 上的變數也是 :var 的形式),又不會有任何問題

感覺是 JPA 的 parser 沒有找到對應的參數來設定,最後直接跳出 exception…

目前在網路上還沒找到跟我一樣的狀況,所以也找不到 root cause

最後試成功的 work around 是在串 SQL 的時候,適時的加上換行符號,最後 JPA 就可以正常的 parser SQL query。

--

--