基本的なことだけど、Spring Data JPAでレコードを削除したいときに時々忘れるので書き溜め。
たとえばレコード削除するときは、void deleteByCode(String code); みたいな書き方をすると思う。
これだけだと、SQLは正しく発行されず関数を呼び出してもレコード削除されない。
@Transactionalのアノテーションを追加することで削除できるようになる。
サンプルコード
サンプルコードは下記のような感じ
1 2 3 4 5 6 7 8 9 10 11 |
package com.example.sample.repository; import javax.transaction.Transactional; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @Repository public interface UserRepository extends JpaRepository<User, Integer> { @Transactional void deleteByCode(String code); } |
普段から使っている人にとっては慣れているだろうけど、少しハマったので残しておく。
またねー。