项目中须要删除掉表中的一些数据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