JPQL działa zgodnie z założeniami. Jego interpretacja jest prawidłowa, w ten sposób funkcja i parametr są zdefiniowane w twoim kodzie.
Aby osiągnąć pożądany rezultat z Oracle, możesz użyć wbudowanego typu Oracle Collection ODCIVARCHAR2LIST
. Tak więc JPQL będzie wyglądał jak poniżej:
SELECT e
FROM myentity e
WHERE Lower(e.myattribute) IN
(
SELECT Lower(column_value)
FROM table(sys.odcivarchar2list(?1)))
UWAGA: W przypadku Oracle 12.2+ nie potrzebujesz table
funkcja, więc poniżej też zadziała:
SELECT e
FROM myentity e
WHERE Lower(e.myattribute) IN
(
SELECT Lower(column_value)
FROM sys.odcivarchar2list(?1))