gpt4 book ai didi

java - HibernateTemplate 回退到自动提交,在哪里?

转载 作者:太空宇宙 更新时间:2023-11-04 06:25:51 26 4
gpt4 key购买 nike

HibernateTemplate api 说:

...its capability to fall back to 'auto-commit' style behavior when used outside of transactions

http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/orm/hibernate3/HibernateTemplate.html

任何人都可以指出发生这种情况的地方:

https://github.com/

http://grepcode.com

我搜索了大约一个小时但没有成功。我正在寻找何时在我的应用程序中创建事务的答案,因为我了解 hibernate 要求为与数据库的每次交互打开一个事务,但我不打开任何事务,也不使用 JTA,并且读取操作仍然工作正常。

最佳答案

All database statements are executed within the context of a physical transaction ,即使我们没有显式声明事务边界(BEGIN/COMMIT/ROLLBACK)。数据完整性由 ACID properties of database transactions 强制执行.

因此,如果您不在逻辑事务(Spring 事务拦截器)的上下文中注册当前的工作单元,那么每个数据库语句将在单独的数据库物理事务中执行,因此您将以“自动提交”模式运行。

...its capability to fall back to 'auto-commit' style behavior when used outside of transactions

这句话告诉您,您可以在 @Transactional 上下文中使用 TransactionTemplate,甚至可以在没有事务上下文的情况下使用。所以你没有义务使用 Spring 事务划分,尽管 for performance reasons you should do so .

因此,您的 TransactionTemplate 相关代码的工作独立于是否具有当前正在运行的事务上下文。

对于普通的 JDBC,如果您想在单个数据库事务中注册多个语句,您的代码必须显式声明事务边界(开始/提交/回滚)。如果不这样做,您将以“自动提交”模式运行。

关于java - HibernateTemplate 回退到自动提交,在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26801901/

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