关于spring框架中的事务问题(急)

wkl_allen 07-01-09
         

我现在在最外层进行了事务控制,在内层里,又使用了批次处理更新.如果出现异常的话,事务没有完全回滚.我想问的是事务是不是具有传递的性质.再就是批次处理是不是会是相对于外层事务控制来说是一个独立的事务,外层事务控制不能影响到内部?????

         

banq
2007-01-09 09:59

J2EE中事务分扁平事务和嵌套事务,只有嵌套事务才符合"对于外层事务控制来说是一个独立的事务"这个条件,否则都是处于一个事务。

Spring其实自己没有事务,它使用的是JTA,只不过提供了方面的配置,嵌套事务是最新JTA中才有,还需要JDBC3支持。

wkl_allen
2007-01-09 10:25

我现在是在spring中配好,在程序中进行事务控制.
(外层)如下:
public void save() throws UserException{
TransactionTemplate tran=new TransactionTemplate(txManager);
tran.execute{
new TransactionCallbackWithoutResult(){
public void doInTransactionWithoutResult(TransactionStatus arg0){
//我的操作
}
}
}

}

在"我的操作"中其中涉及到一个批处理的操作

(内层)批处理的主要代码:

  getSqmMapClientTemplate().execute(new SqlMapClientCallback(){
public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLExcpetion{
executor.startBatch();
.....
executor.executeBatch();
}
}

请问bang这样外层与内层是不是同一个事务,如果发生异常能不能同时回滚???请指教!


















如果说只有嵌套事务才符合"对于外层事务控制来说是一个独立的事务"这个条件,那么我如何

wkl_allen
2007-01-09 10:57

我的目的是只要出现异常,整个事务都要回滚,包括内层的批处理操作.我现在怀疑批处理操作是一个事务过程,它成功了就把事务提交了,而除批处理操作外还会有其它的操作,如果出现问题的话,在最外层的话就不起作用了.如何让最外层的事务控制也控制好批处理操作.

wkl_allen
2007-01-10 09:12

难道大家不能告诉我如何才能解决上面问题吗?

2Go 1 2 下一页