JPQL funktioniert wie vorgesehen. Es wird richtig interpretiert, so werden Funktion und Parameter in Ihrem Code definiert.
Um mit Oracle das gewünschte Ergebnis zu erzielen, können Sie den eingebauten Oracle Collection-Typ ODCIVARCHAR2LIST
verwenden . JPQL sieht also wie folgt aus:
SELECT e
FROM myentity e
WHERE Lower(e.myattribute) IN
(
SELECT Lower(column_value)
FROM table(sys.odcivarchar2list(?1)))
HINWEIS: Für Oracle 12.2+ benötigen Sie table
nicht Funktion, also wird unten auch funktionieren:
SELECT e
FROM myentity e
WHERE Lower(e.myattribute) IN
(
SELECT Lower(column_value)
FROM sys.odcivarchar2list(?1))