spring data jpa @Query注解中delete語句報錯


項目中需要刪除掉表中的一些數據

@Query("delete from EngineerServices es where es.engineerId = ?1")
int deleteByEgId(String engineerId);
但是提示了錯誤

org.hibernate.hql.QueryExecutionRequestException: Not supported for DML operations
通過查閱相關的資料發現,對於執行update和delete語句需要添加@Modifying注解

@Modifying
@Query("delete from EngineerServices es where es.engineerId = ?1")
int deleteByEgId(String engineerId);
不過,添加之后運行又出現了另一個錯誤

nested exception is javax.persistence.TransactionRequiredException: Executing an update/delete query
發現缺少Transaction,於是添加@Transactional

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

到此,這條delete語句終於可以成功的執行了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM