Abp框架工作单元 可以在发生异常发生的时候能够回滚,目前项目需要使用锁,由此思考需要注意的事项.
Abp框架 工作单元实现非常的灵活,默认在Application层自动开启工作单元,即自动开启事务,所有在内部调用方法自动获取外层的事务,中间发生异常,在最外层方法结束后自动回滚.那么现在的问题是,如果外层使用了try catch,事务会不会回滚,答案是 不会回滚了
try{
do some trans..
}
catch{
}
finally{
但是不catch 还是可以 回滚的
try{
}
finally{
}
那如果try catch同时需要回滚怎么办,要么手动开一个事务,要么主动在catch之后 再抛出异常.
我这边主要使用的是 try finally ,主要是需要释放锁,在try 里面做锁操作,同时在finally里面执行 释放锁的操作,防止没有释放锁 产生死锁.