Функция Unnest в множественном запросе вставки с использованием данных пружины - PullRequest
0 голосов
/ 05 марта 2019

Я пытаюсь выполнить множественную вставку, используя функцию unnest из Postgresql, чтобы вывести список таких данных tip из @krokodilko.

@Modifying(clearAutomatically = true)
@Query(value="insert into training_exercise(training_id, exercise_id) SELECT ?1, x FROM unnest(ARRAY?2) x ",nativeQuery=true)
void addExercises(Long id, List<Long> exercisesIds);

Проблема в том, что созданный sql выглядит примерно так:

insert into training_exercise(training_id, exercise_id) SELECT 1, x FROM unnest(ARRAY(1,2,3)) x 

Это выдает ошибку, причина в том, что для использования массива необходимо "[", а не"(".

Я нашел обходной путь, модифицирующий запрос следующим образом:

insert into training_exercise(training_id, exercise_id) SELECT ?1, exercises.id FROM (select exercises.id from exercises where exercises.id in ?2) as exercises.

Есть ли способ достичь моего первоначального намерения с помощью стратегии "гнезда"?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...