2014-01-08 64 views
0

在我的申請,我做了以下Java事務回滾shouldnot所有記錄(在出現故障的情況下)

1. Getting 25 records from the DB. 
2. Update every 10 records 
    Here I have a loop to update every 10 records.so there will be 3 loops. 
    For each loop I need to have a new transaction.(so that only the 10 record will rollback and not all the records will rollback) 
//line 1 
    getRecords();//25 records from DB //line 2 
    For(Records r: loop) { //line 3 
    add 10 records; //line 4 
    call update method(object with 10 records) //line 5 
} 
    //line 6 
updateRecords()//this method updates the 10 records\\line 7 

在這裏,我想我需要在第6
使用@Transaction(REQUIRED)這樣只有10記錄將回滾並且不是所有記錄都會回滾。

任何人都可以確認,如果這是正確的做法?

+2

你用什麼框架/工具來更新表格? –

+0

我打電話給一個dao班。那個dao類在任何事情發生失敗時返回(拋出)異常。我不知道dao實現的框架。 – user1514499

回答

0

@Transaction(REQUIRED)將繼續現有的事務(如果存在的話),並在沒有事務存在時創建事務。我認爲在你的情況下,你可以使用@Transaction(REQUIRES_NEW),它會一直創建一個新的事務。

在EJB事務的情況下,this解釋了各種事務屬性。

相關問題