首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >春季交易中的一个连接?

春季交易中的一个连接?
EN

Stack Overflow用户
提问于 2011-05-17 14:48:15
回答 1查看 4.8K关注 0票数 10

我很少有关于连接和spring事务的问题。

  1. 当执行DML和DDL操作的多个方法在事务中执行(需要传播级别)时,spring是否使用相同的连接实例?我读到过,它确实保持着同样的联系,但不知道为什么和如何在技术上做到这一点?在解释如何在spring源代码中提供任何提示时,这将是有帮助的。
  2. 使用Spring声明性事务(如果我使用Serializable作为隔离级别),spring会确保在执行该方法中的数据库操作时,还是在从原始事务方法调用的任何其他方法中始终使用一个连接吗?

考虑到这个主题,在处理Spring事务时,我需要记住哪些要点?

如对此专题有任何想法或帮助,将不胜感激。谢谢。

更新1 -对不起,我写了可序列化的传播级别而不是隔离级别。改正了。

EN

回答 1

Stack Overflow用户

发布于 2011-05-17 15:00:37

  1. Spring事务管理只是不同事务资源(如JDBC连接)的统一接口。因为对于大多数事务资源来说,让一个事务跨多个连接传播是没有意义的,因此这些资源的Spring管理事务中的所有操作都在同一个连接中执行。当然,如果您在JtaTransactionManager中使用分布式事务,则涉及到不信任事务的每个事务资源都会有自己的连接。
  2. 事务隔离级别与Spring事务管理无关。它们的含义是在数据库理论中定义的。。此外,它们与事务传播无关。

Spring通过使用Connection将连接(如JDBC TransactionSynchronizationManager )作为线程本地状态的一部分来实现这种行为。参见,例如,DataSourceUtils

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6032633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档