gpt4 book ai didi

spring - Spring 交易中的一个连接?

转载 作者:行者123 更新时间:2023-12-04 08:15:28 25 4
gpt4 key购买 nike

我有几个与连接和 Spring 交易有关的问题。

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

  • 考虑到这个主题,在使用 Spring Transactions 时我应该记住哪些要点?

    对此主题的任何想法/帮助将不胜感激。谢谢。

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

    最佳答案

  • Spring 事务管理只是对不同事务资源的统一接口(interface),例如 JDBC 连接。由于对于大多数事务性资源来说,让事务分布在多个连接上是没有意义的,因此 Spring 管理的事务中针对这些资源的所有操作都在同一个连接中执行。当然,如果您使用带有 JtaTransactionManager 的分布式事务,分布式事务中涉及的每个事务资源都有自己的连接。
  • 事务隔离级别与 Spring 事务管理无关。 Their meaning is defined in the database theory .此外,它们与事务传播无关。

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

    关于spring - Spring 交易中的一个连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6032633/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com