JPQL fungerar som designat. Det tolkar det rätt, det är så funktionen och parametern definieras i din kod.
För att uppnå önskat resultat med Oracle kan du använda den inbyggda Oracle Collection typen ODCIVARCHAR2LIST
. Så JPQL kommer att se ut som nedan:
SELECT e
FROM myentity e
WHERE Lower(e.myattribute) IN
(
SELECT Lower(column_value)
FROM table(sys.odcivarchar2list(?1)))
OBS: För Oracle 12.2+ behöver du ingen table
funktion, så nedan kommer att fungera också:
SELECT e
FROM myentity e
WHERE Lower(e.myattribute) IN
(
SELECT Lower(column_value)
FROM sys.odcivarchar2list(?1))