O JPQL está funcionando conforme projetado. Está interpretando corretamente, é assim que a função e o parâmetro são definidos em seu código.
Para obter o resultado desejado com o Oracle, você pode usar o tipo de coleção Oracle embutido
ODCIVARCHAR2LIST
. Então o JPQL ficará como abaixo:SELECT e
FROM myentity e
WHERE Lower(e.myattribute) IN
(
SELECT Lower(column_value)
FROM table(sys.odcivarchar2list(?1)))
OBSERVAÇÃO: Para Oracle 12.2+, você não precisa de
table
função, então abaixo também funcionará:SELECT e
FROM myentity e
WHERE Lower(e.myattribute) IN
(
SELECT Lower(column_value)
FROM sys.odcivarchar2list(?1))