spring data jpa执行update和delete语句时报错处理

Spring Data JPA 删除语句

@Query(value = "delete t from tb_callback t where t.count >= :maxRetryCount and DATE_ADD(t.update_time, INTERVAL :keepTime DAY) < NOW()", nativeQuery = true)void deleteRetryMoreThan(@Param("maxRetryCount") int maxRetryCount, @Param("keepTime") int keepTime);

报错信息:

@Modifying@Query(value = "delete t from tb_callback t where t.count >= :maxRetryCount and DATE_ADD(t.update_time, INTERVAL :keepTime DAY) < NOW()", nativeQuery = true)void deleteRetryMoreThan(@Param("maxRetryCount") int maxRetryCount, @Param("keepTime") int keepTime);

,报错信息变为:

@Transactional
@Modifying
@Query(value = "delete t from tb_callback t where t.count >= :maxRetryCount and DATE_ADD(t.update_time, INTERVAL :keepTime DAY) < NOW()", nativeQuery = true)void deleteRetryMoreThan(@Param("maxRetryCount") int maxRetryCount, @Param("keepTime") int keepTime);

 

@Query单独使用会被识别为查询操作

@Modifying注解与@Query一起使用会将查询操作识别为修改查询,这样框架最终会生成一个更新的操作,而非查询


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部