使用彈簧數據時,可以擴展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 CrudRepository_」。你的示例代碼就是這樣做的;沒有?一個事務需要對數據庫做任何事情,所以在這裏不需要'@Transactional'註釋 - 將一個以上的DAO操作分組到單個事務中是必需的。 –
您是否嘗試刪除'@ Transactional'並查看事務是否已提交? –
@BoristheSpider剛剛展示了我的Repository如何擴展CrudRepository?您能否定義您的意思:「將多個DAO操作分組爲單個事務」?謝謝 – java123999