以下の内容はhttps://rennnosukesann.hatenablog.com/entry/2018/11/27/215331より取得しました。


【Spring Data JPA】@Queryによる更新/削除クエリには@Modifingアノテーションを付加する

TD;DR

Spring Data JPAのRepositoryに@Queryで更新/削除クエリを定義するとき、@Modifingアノテーションを付加します。

@Modifing
@Transactional
@Query(value = "DELETE FROM PHOTO AS p WHERE p.USER_ID = :userId", nativeQuery = true)
public void deletePhoto(@Param("userId") int userId);

@Queryによる更新系操作

@Queryを使ってSpringのRepositoryに更新系操作を定義するとき、以下のようなエラーが出現します。

SQLException: Can not issue data manipulation statements with executeQuery().

データ更新系操作をしている間は、 executeQuery() を呼べないと怒られてしまいます。おそらく内部でJDBCexecuteQuery() が呼ばれているものと思われます。

これを回避するには、上述の @Modifing アノテーションを付加します。

@Modifing
@Transactional
@Query(value = "DELETE FROM PHOTO AS p WHERE p.USER_ID = :userId", nativeQuery = true)
public void deletePhoto(@Param("userId") int userId);

以上です。




以上の内容はhttps://rennnosukesann.hatenablog.com/entry/2018/11/27/215331より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14