Java List, приведенный к int[], вызывает исключение PSQLException: ОШИБКА: синтаксическая ошибкаJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Java List, приведенный к int[], вызывает исключение PSQLException: ОШИБКА: синтаксическая ошибка

Сообщение Anonymous »

Мне нужна помощь в понимании и устранении следующей проблемы.

Я создал функцию postgresql для получения всех событий в определенных регионах на основе таких регионов:

Код: Выделить всё

CREATE OR REPLACE FUNCTION get_all_events_in_regions(regionIds int[])
RETURNS SETOF events AS $$
BEGIN
RETURN QUERY
SELECT  DISTINCT ON (e.id)
e.id,
e.event_type_id,
e.vehicle_id,
e.event_status_id,
e.event_title,
...
FROM events as e
JOIN vehicle_region vr ON e.vehicle_id = vr.vehicle_id
WHERE vr.region_id = ANY(regionIds);
END;
$$ LANGUAGE plpgsql;
И это прекрасно работает, когда я вызываю его из командной строки:

Код: Выделить всё

SELECT * FROM get_all_events_in_regions(ARRAY[1, 3,  6]);
Затем у меня есть Spring Boot API, который использует JPA для ORM и сохранения данных.
Внутри EnventRepository я создал собственный метод запроса, подобный этому:

Код: Выделить всё

@Query(value = "SELECT e.* FROM get_all_events_in_regions(CAST(:regionIds as int[]) e", nativeQuery = true)
List getAllEventsInRegions(@Param("regionIds") List regionIds, Pageable pageable);
Но я получаю PSQLException: ERROR: синтаксическая ошибка в месте "," или рядом с ним

regionIds обычный ArrayList, когда я его регистрирую.
Я также пробовал без CASTING в int[], но ошибка была:

PSQLException: ОШИБКА: функция get_all_events_in_regions (целое, целое, целое, целое, целое, целое, целое, целое, целое, целое) не существует
Подсказка: ни одна функция не соответствует данному имени и типам аргументов. Возможно, вам придется добавить явное приведение типов.

И я не знаю, что происходит и как это исправить.
Заранее спасибо за вашу помощь

Подробнее здесь: https://stackoverflow.com/questions/770 ... ntax-error
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»