数据访问层里面包含商业逻辑的问题

我们知道,为了XXXXX, 我们需要将商业逻辑封装到商业逻辑层(Biz Logic Component),数据访问封装到数据访问层(Data Access Component).

有这么个问题,有些数据库访问操作需要被包含在DB Transaction里面,但是在一个DB Transactoin里面有可能会涉及到一些商业逻辑(我不肯定,DB Transaction里面的商业逻辑是否肯定可以提取出来),而商业逻辑层不应该涉及到数据库操作级别的Transaction, 这样是否不可避免的会将一些商业逻辑包含到数据访问层里面呢?

一种可能的解决放案是碰到比较复杂的事务操作时,在商业逻辑层控制事务,事务操作前,纪录初始状态,在某一步出现错误的时候用Compensation步骤里面回滚到最初的状态.比如说已经Insert纪录了,出错的时候再在Compensation里面通过某个关键字Delete这条纪录.

不知道是我对事务和商业逻辑理解有不完整,还是确实这是一个经常迷惑大家的问题?

谁有好的建议? 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值