
你应该去找spring的书 或 官方文档看看
这里你需要理解的是 事务的传播行为
传播行为主要是用来告知何时该开始一个新的事务 或者 何时暂停一个事务等
如:Propagation.REQUIRED 就是传播行为中的一种
表示如果它的外部已经存在一个事务;则无需再开始新的事务;(他自然在这个事务中)
如果外面没有事务则开始一个新的事务
所有这种事务声明是可以嵌套的(虽然事务声明可以嵌套,但事务本身并没有嵌套,当然事务是不可嵌套的;正像上面讲的一样)
---------------------------------------------------------------------------
如你的问题中 同时对一张表的两种 *** 作
如果这两个 *** 作封装在不同的方法中,只需将这两个方法都声明为Propagation.REQUIRED
并把更上一层调用这两个子方法的 方法也声明为Propagation.REQUIRED
这种方式比较灵活,两个方法即可独立开始事务;也可加入上层事务;具体要看业务需要
如果这两个 *** 作封装在一个方法中,只需要将这个方法都声明为Propagation.REQUIRED即可
一般来说,应该在service层加事务,因为service层是比较底层的,它可以把一个业务 *** 作分解成多个小的 *** 作,比如:添加用户,添加订单,添加购物车等,这些 *** 作都可以在service层加事务,以保证数据的完整性。而controller层一般只是接收用户的请求,然后调用service层的接口,所以不需要加事务。欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)