ZKX's LAB

事务控制在service层 SSH事务管理放在哪一层(Dao?Service?)?为什么?

2020-07-23知识15

你好,看到了你对“关于Spring事务控制方面的问题,就是不在service层做控制”的回答 现在很多应用不都是在service层做事务控制的吗?SSH事务管理放在哪一层(Dao?Service?)?为什么? 理论上,是放在 Service 这一层.举例来说嘛.例如,你的系统,是一个 购物网站一个用户 买了 3种商品,每样各一个。支付费用 2000 元(其中使用 信用卡支付了1K,支付宝又支付了1K)那么你的 Service 要调用下面这些 Dao 来插入数据首先,调用 订单的 Dao,插入 订单总表 1行 与 订单明细 3行数据。然后,调用 财务的 Dao,插入 收款 2000 元的信息 2行数据。如果你的 事务在 Dao 层,那么如果订单保存成功,但是财务的失败了。那就是悲剧。SSH中用spring控制service层的事务,但是我service里面同时用了Hibernate和Jdbc,我应该用哪个事务控制器 这个,你根据你业来务中的具体实现,如果业务方法只用自hibernate,那么你就用Hidernate事务控制器百,如果你用的是度JDBC,那么你用JDBC事务控知制器道,如果两种都用了,我想,应该用JDBC事务控制器吧,毕竟,hibernate底层也是JDBC实现的。关于Spring事务控制方面的问题,就是不在service层做控制 同意1楼的兄弟说的,业务逻辑应该由service处理,造成需要在action开启事务的最根本原因主要是你的组件层API设计有问题,action中不该处理业务逻辑代码的,需要调多个service。spring怎样在service层控制事务 通过AOPclass=\"org.springframework.orm.hibernate3.HibernateTransactionManager\">;expression=\"execution(public*com.bjsxt.registration.service.*.*(.))\"/>;对什么类加事物advice-ref=\"txAdvice\"/>;propagation=\"REQUIRED\"/>;这里就是控制事务,add*,表示对add方法加事物

#dao#事务#数据库事务#spring事务管理

随机阅读

qrcode
访问手机版