JPQL đang hoạt động như được thiết kế. Nó diễn giải đúng, đó là cách hàm &tham số được xác định trong mã của bạn.
Để đạt được kết quả mong muốn với Oracle, bạn có thể sử dụng loại Oracle Collection có sẵn ODCIVARCHAR2LIST
. Vì vậy, JPQL sẽ giống như bên dưới:
SELECT e
FROM myentity e
WHERE Lower(e.myattribute) IN
(
SELECT Lower(column_value)
FROM table(sys.odcivarchar2list(?1)))
LƯU Ý: Đối với Oracle 12.2+, bạn không cần table
, vì vậy bên dưới cũng sẽ hoạt động:
SELECT e
FROM myentity e
WHERE Lower(e.myattribute) IN
(
SELECT Lower(column_value)
FROM sys.odcivarchar2list(?1))