JPQLは設計どおりに機能しています。それを正しく解釈することで、関数とパラメーターがコードで定義されます。
Oracleで目的の結果を得るには、組み込みのOracleコレクションタイプODCIVARCHAR2LIST
を使用できます。 。したがって、JPQLは次のようになります。
SELECT e
FROM myentity e
WHERE Lower(e.myattribute) IN
(
SELECT Lower(column_value)
FROM table(sys.odcivarchar2list(?1)))
注: Oracle 12.2 +の場合、table
は必要ありません。 機能するので、以下も機能します:
SELECT e
FROM myentity e
WHERE Lower(e.myattribute) IN
(
SELECT Lower(column_value)
FROM sys.odcivarchar2list(?1))