用 @Query与@Modifying写自定义sql时老是不成功,不知道为什么
但是用了事务注解就可以了,而且发现即使在sql层面不加事务,在service层面添加事务也是可以的,也就是说只要用到@Query自定义的更新、插入、删除时候,要加上事务
//不能被执行
@Modifying
@Query(value = " update exception_bug set msg= 'update' where id =?1", nativeQuery = true)
int updateOne(@Param(value = "id") Integer id);
//能被执行
@Transactional
@Modifying
@Query(value = " update exception_bug set msg= 'update' where id =?1", nativeQuery = true)
int updateOne(@Param(value = "id") Integer id);
应该导入的包如下
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;