Я пытаюсь выполнить следующие запросы за один раз в MySQL через spring data jpa.
SET @i := 0;
UPDATE tv_episode te SET te.display_episode_no= @i:=@i+1 WHERE te.tv_season_id=season ORDER BY broadcast_date;
Я попытался найти решение этой проблемы на StackOverflow, но не нашел.
Что эквивалентно SET @i := 0; в spring-data-jpa? Есть ли способ выполнить оператор в аннотированном методе @Modifying и @Query?




Вы можете запускать собственные запросы, добавив nativeQuery = true в @Query:
@Modifying
@Query(value = "SET @i := 0;\n" +
"UPDATE tv_episode te SET te.display_episode_no= @i:=@i+1 WHERE te.tv_season_id = :season", nativeQuery = true)
int updateUserSetStatusForName(@Param("season") Integer season);
И если вы не хотите использовать собственный запрос, вы можете передать такие параметры:
@Modifying
@Query("update TvEpisode te set te.displayEpisodeNo = :epiodeNo where te.tvSeasonId = :season")
int updateUserSetStatusForName(@Param("epiodeNo") Integer epiodeNo,
@Param("season") Integer season);
Ваш первый запрос не будет принят из-за символа
::Space is not allowed after parameter prefix ':'