我有一個主要的DB處理程序方法,它調用其他方法,這些方法也與BD事情一起工作。我是否應該在春季也爲子方法添加@Transactional註解?
我把@Transactional註釋的主要方法,因爲我想回滾一切,如果出現問題。
我的問題是:我是否應該將這個註解也用於子方法,或者它會知道子方法是從事務性方法調用的。
例如,在刪除方法發生異常時,我如何才能確保寫入的部分也將被rollbacked:當它遇到與@Transactional
註釋的方法
@Transactional
public void maintDbTings() {
writing();
deleting();
}
@Transactional //do I need this?
public void writing() {
//no exceptions
}
@Transactional //do I need this?
public void deleting() {
//exception occurs
}
由於這些都是公開的,可以自行調用,我想你做需要註釋。只要確保它們不會不必要地創建自己的事務,並且儘可能使用'mainDbThings'事務。 –
但如果他們將是私人的,並只從主要方法調用?如果刪除方法有例外情況,寫入方法是否會回滾? – victorio
爲了澄清,如果方法是從mainDbTings調用的,則不需要該方法,因爲如果有的話,mainDbTings已經啓動了一個事務。但是,這些方法應該是私人的。如果可以在不通過mainDbTings的情況下調用它們並且應該是事務性的,那麼它們也應該被註釋。 –