java事务不应该回滚所有记录(如果失败)

时间:2014-01-08 03:00:22

标签: java sql database spring transactions

在我的申请中,我正在做以下

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条记录才会回滚,而不是所有记录都会回滚。

有人可以确认这是否是正确的方法?

1 个答案:

答案 0 :(得分:0)

@Transaction(REQUIRED)将继续现有交易(如果存在),并且如果不存在交易则将创建交易。我认为在你的情况下你可以使用@Transaction(REQUIRES_NEW)来创建一个新的交易。

如果是EJB事务this解释了各种事务属性。