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一起使用会将查询操作识别为修改查询,这样框架最终会生成一个更新的操作,而非查询
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
