解決使用Springboot jpa update數據時報錯Executing an update/delete query

最近在做項目時,使用的Springboot jpa ,使用原生SQL方法實現數據更新時,運行時的報錯信息如下:

org.springframework.dao.InvalidDataAccessApiUsageException: Executing an update/delete query; nested exception is javax.persistence.TransactionRequiredException: Executing an update/delete query

因爲jpa要求,’沒有事務支持,不能執行更新和刪除操作’。
遇到如上情況“執行一個更新/刪除查詢”後面報錯“javax的持久類的事務需求異常”通常情況下講,是沒有書寫事務,就是在Service層或者Repository層上必須加@Transactional,來代表這是一個事務級別的操作,增刪改查除了查都是事務級別的,就當這是一個規範也是ok的。在查詢過程中因爲不涉及到對於數據庫的操作,所以可以不聲明事務也能執行。

    @Transactional
    @Query(value="update User u set u.shareopenid = ?1 where u.id = ?2")
    @Modifying
    public int updateShareOpenidById(String shareOpenid,Long id);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章