この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:4
ページ更新者:atom
更新日時:2026-05-15 03:52:15

タイトル: Caused by: java.lang.RuntimeException: Executing an update/delete query
SEOタイトル: Caused by: java.lang.RuntimeException: Executing an update/delete query

この記事の要点
  • Spring Data JPA の TransactionRequiredException: Executing an update/delete query
  • 原因: 更新系クエリにトランザクションがない
  • 対処: @Modifying + @Transactional をリポジトリメソッドに付与
  • Service 層に @Transactional を付ける方法でも OK

 

エラー内容

Caused by: java.lang.RuntimeException: Executing an update/delete query;

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

 

発生条件/原因/対処法

JPAで更新系のSQLを実行した際に発生するエラー。

@Modifyingアノテーションのみ付与した状態で@Transactionalが不足していることが原因。

以下のように実装することで当エラーは解決する。

@Repository
public interface TestRepository extends JpaRepository{
    
    
@Transactional
    @Modifying
    @Query("UPDATE TestEntity te SET te.colA = 1 WHERE te.id = :id")
    Integer updateTest(@Param("id")String id);
}