我现在一直使用的编程式事务控制(具体:使用spring提供的template,不在xml里面配置事务,单个方法直接使用template操作,这样操作完上下文就直接提交事务,关闭连接。如果多个方法需要在一个事务里面的话就用TransactionTemplate进行控制)。
因为如果使用配置,虽然在几个方法都配置的require,或者requed new 事务,但是如果方法互相调用的话,方法里面调用的方法就使用的上层方法事务,而不是suspend上层事务,但是我想针对有些单个方法单独处理事务,例如写日志记录到数据库。配置文件式还是无法解决,必须硬编码。请问有么有好的解决办法!
Spring事务控制以及事务传播的控制,底层实现其实是ThreadLocal中的线程绑定的connection和事务引用计数器,当当前事务引用为0的时候,进行commit。文档和代码中其实都有很详细的解释,我也没看到你说这块有啥问题。
至于配置模式(或者annotation模式),我只是用过默认的required,没遇到过required_new不生效的情况
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。