等效于spring数据jpa中的set @variable = 0

时间:2018-12-10 13:40:42

标签: java mysql hibernate jpa spring-data-jpa

我正在尝试通过Spring数据jpa在MySQL中执行以下查询。

if (!context.IsReplaying)
{
    context.SetCustomStatus("My status");
}

我尝试在StackOverflow上找到解决方案,但找不到任何解决方法。

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; 等于什么?有什么方法可以在带有注释的方法SET @i := 0;@Modifying中执行语句?

1 个答案:

答案 0 :(得分:0)

您可以通过向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);