spring data jpa @Query注解中delete语句报错

项目中须要删除掉表中的一些数据java

@Query("delete from EngineerServices es where es.engineerId = ?1")
int deleteByEgId(String engineerId);

可是提示了错误ui

org.hibernate.hql.QueryExecutionRequestException: Not supported for DML operations

经过查阅相关的资料发现,对于执行update和delete语句须要添加@Modifying注解
spa

@Modifying
@Query("delete from EngineerServices es where es.engineerId = ?1") int deleteByEgId(String engineerId);

不过,添加以后运行又出现了另外一个错误hibernate

nested exception is javax.persistence.TransactionRequiredException: Executing an update/delete query

发现缺乏Transaction,因而添加@Transactional
code

 

@Modifying
@Transactional
@Query("delete from EngineerServices es where es.engineerId = ?1") int deleteByEgId(String engineerId);

 

到此,这条delete语句终于能够成功的执行了。blog

相关文章
相关标签/搜索