JPQL funguje tak, jak bylo navrženo. Jeho interpretace je správná, tak jsou funkce a parametry definovány ve vašem kódu.
Chcete-li s Oracle dosáhnout požadovaného výsledku, můžete použít vestavěný typ Oracle Collection ODCIVARCHAR2LIST
. JPQL tedy bude vypadat následovně:
SELECT e
FROM myentity e
WHERE Lower(e.myattribute) IN
(
SELECT Lower(column_value)
FROM table(sys.odcivarchar2list(?1)))
POZNÁMKA: Pro Oracle 12.2+ nepotřebujete table
funkce, takže níže bude fungovat také:
SELECT e
FROM myentity e
WHERE Lower(e.myattribute) IN
(
SELECT Lower(column_value)
FROM sys.odcivarchar2list(?1))