spring - 事务管理器在提交第二个事务时触发异常时不回滚事务
问题描述
我在名为 DB1、DB2 的应用程序中使用了两个数据库。用于使用 org.springframework.data.transaction.ChainedTransactionManager 管理事务。
<bean id="transactionManager" class="org.springframework.data.transaction.ChainedTransactionManager">
<constructor-arg>
<list>
<ref bean="DB1" />
<ref bean="DB2" />
</list>
</constructor-arg>
</bean>
DB1、DB2是“org.springframework.orm.hibernate5.HibernateTransactionManager”类的引用。在我的代码中,我正在更新我的服务类中的两个数据库。据我所知,hibernate 以相反的顺序提交了事务,所以 DB2 成功提交,但是当 hibernate 将提交 DB1 时,然后得到这个异常
SQL Error: 12899, SQLState: 72000
ORA-12899: value too large for column "SCHEMA"."TABLE_NAME"."COLUMN_1" (actual: 13, maximum: 12)
所以 DB1 得到回滚,但 DB2 没有得到回滚。
我想要——当 DB1 出现错误时,DB2 也会回滚。
解决方案
推荐阅读
- c# - 更改目录并运行命令以使用 C# 导入
- python-3.x - 如何避免每次下载 glove-wiki-gigaword-300 或任何其他词向量包?
- python-3.x - 如何将数据框中的多列从输出转换为excel?
- unit-testing - 在这种情况下如何编写测试?
- html - Blazor - 在页面之间发送多个数据
- android - budtmo docker android 模拟器代理设置未保存在 android 快照中
- flutter - 颤振处理通知点击不适用于所有页面
- python - 将文件中的文本加载到列表中。索引错误
- php - str_getcsv 用日语给出错误的分隔符
- c# - 我正在使用 IdentityServer4,我正在尝试使用访问令牌访问同一服务器上的其他 API 端点,总是收到 401