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

相關文章
相關標籤/搜索