JPQL funziona come previsto. La sua interpretazione corretta, ecco come la funzione e il parametro sono definiti nel tuo codice.
Per ottenere il risultato desiderato con Oracle, puoi utilizzare il tipo Oracle Collection integrato ODCIVARCHAR2LIST
. Quindi JPQL apparirà come di seguito:
SELECT e
FROM myentity e
WHERE Lower(e.myattribute) IN
(
SELECT Lower(column_value)
FROM table(sys.odcivarchar2list(?1)))
NOTA: Per Oracle 12.2+, non hai bisogno di table
funzione, quindi funzionerà anche di seguito:
SELECT e
FROM myentity e
WHERE Lower(e.myattribute) IN
(
SELECT Lower(column_value)
FROM sys.odcivarchar2list(?1))