當EJB的(交易)方法調用另一個(事務),另一個EJB的方法,並拋出一個異常在第二,但在第一個擦肩而過,似乎該交易將自動爲當第二個人回來時,即使第一個人回來,也會回滾,這是真的嗎?我怎樣才能避免它?EJB:避免事務回滾
的情況是以下之一:
@Stateless
class ClassA {
@EJB
ClassB objectB;
methodA() {
try {
objectB.methodB();
}
catch(Exception e) {
//Here the transaction started in this method is
//automatically rolled back. Is this avoidable?
}
}
}
@Stateless
class ClassB {
methodB() throws Exception { throw new Exception() }
}
我不好,對不起,我修改請注意,它拋出一個檢查異常,則該交易在這種情況下回滾還有問題嗎? – edutesoy
不,如果異常是檢查的異常,則不應回滾。 –
如果您只知道異常已被檢查,您不能說它是否會回滾您的交易。如果它是'@ApplicationException(rollback = true)',它可能會回滾你的事務。 –