代码之家  ›  专栏  ›  技术社区  ›  Saheb jtoberon

相当于spring data jpa中的“set@variable=0”

  •  0
  • Saheb jtoberon  · 技术社区  · 7 年前

    我试图通过spring data jpa在MySQL上一次性执行以下查询。

        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; 春季数据jpa?有没有办法在 @Modifying &安培; @Query 带注释的方法?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Mohsen    7 年前

    可以通过添加 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);