Springデータを使用する場合、CrudRepositoryを拡張することができます。CrudRepository .delete()メソッドはトランザクション処理されていますか?
このリポジトリ.delete()
のメソッドは「どのように」機能しますか?
また、この方法はTransactional
ですか?この場合、Spring-data
を使用する場合は、@Transactional
注釈を使用する必要があります。
たとえば、@Transactional
が必要ですか? :
拡張CrudRepository:
public interface PersonRepository extends CrudRepository<Person, Integer> {
}
サービスクラスでメソッドを削除する使用:
@Transactional
public void deletePerson(Person person) {
personRepository.delete(person);
}
編集:どのよう@Transactional
作業ここでしょうか?
@Transactional
public void deletePersonAndTable(Person person, Table table) {
personRepository.delete(person);
tableRepository.delete(Table);
}
"_extend the CrudRepository_"を定義します。あなたのサンプルコードはそれを正確に実行しています。いいえ?トランザクションはデータベースで何かをする必要があるので、ここで '@ Transactional'アノテーションの必要はありません。複数のDAO操作を1つのトランザクションにグループ化する必要があります。 –
'@ Transactional'を削除して、トランザクションがコミットされているかどうか確認しましたか? –
@BoristheSpiderは私のリポジトリがCrudRepositoryをどのように拡張しているかを示していますか?あなたは、あなたが意味することを定義してください: "複数のDAO操作を1つのトランザクションにグループ化する必要がありますか?"ありがとう – java123999