JPQL функционира, както е проектирано. Интерпретира го правилно, така функцията и параметърът са дефинирани във вашия код.
За да постигнете желания резултат с Oracle, можете да използвате вградената колекция Oracle тип ODCIVARCHAR2LIST
. Така JPQL ще изглежда така:
SELECT e
FROM myentity e
WHERE Lower(e.myattribute) IN
(
SELECT Lower(column_value)
FROM table(sys.odcivarchar2list(?1)))
ЗАБЕЛЕЖКА: За Oracle 12.2+ нямате нужда от table
функция, така че по-долу също ще работи:
SELECT e
FROM myentity e
WHERE Lower(e.myattribute) IN
(
SELECT Lower(column_value)
FROM sys.odcivarchar2list(?1))