Proxool+hibernate+spring时事务自动回滚导致无法提交的问题解决

地理空间智能体(GI Agent) 地理空间智能体(Geospatial Intelligence Agent, GI Agent)是AI Agent技术与地理信息系统(GIS)深度融合的产物。其核心是以大型语言模型(LLM)为驱动,通过自然语言理解、任务分解和工具调用能力,实现地理空间任务的自动化执行。​关键特性​自主性​:独立规划任务流程(如空间数据检索、分析、可视化);​交互性​:支持自然语言对话交互,替代传统图形界面操作;​扩展性​:灵活集成第三方工具和API,支持跨平台协作。 阅读详情

这个问题整了我几乎一个下午的时间。。。。。

 

项目需要用到双数据源,而对于连接池,我选择了备受好评的Proxool,结果在spring配置了两个数据源,测试事务的时候,发现不发生错误,数据也无法提交出去。。。。。这让我纳闷了很久很久。。。一直以为是我双数据源配置错了,因为在SSH+proxool的情况下配置双数据源真的是第一次尝试。。。。。

 

后来逐步测试,直到把双数据源配置去了也发现不能插入,于是开始怀疑是数据库的问题。。。结果不是,后来在想,难道proxool的配置被我改烂了?想想也不至于那么差劲吧~~

 

然后重新恢复原始配置,发现proxool的数据源无法插入数据,但是能查询,换成jdbc则都可以,看来这是proxool的问题了。。。找到根源所在,立马对症下药。。。。但是网上也找不到很满意的答案,或者就是不了了之的,而且有这种问题的还真的都是使用proxool数据源的。。。。看来proxool本身存在很多问题啊。。。

 

再测试看看为什么proxool的数据出问题,在proxool和jdbc来回切换间,发现自增长主键的值并不连续的,开始怀疑proxool并不是没有提交查询,而是自动回滚了。。。。,打开SQL事件探测器追踪。。。

果然自动回滚了。。。。。

如下:

SET IMPLICIT_TRANSACTIONS ON
go
declare @P1 int
set @P1=1
exec sp_prepare @P1 output, N'@P0 nvarchar(4000),@P1 nvarchar(4000)', N'insert into testdatabase.dbo.users (name, deptcode) values ( @P0 ,  @P1 ) SELECT SCOPE_IDENTITY() AS ID', 1
select @P1
go
exec sp_execute 1, N'kk', NULL
go
IF @@TRANCOUNT > 0 ROLLBACK TRAN
go
IF @@TRANCOUNT > 0 COMMIT TRAN
SET IMPLICIT_TRANSACTIONS OFF
go

 

这个真是郁闷。。。。proxool这种问题也有阿,有查了下相关的资料,发现很少有人遇到这个问题,只有一个人也说发现了这样的问题,只要使用hibernate加载proxool配置文件就会这样。。。我是使用spring来控制hibernate参数,参数中配置了hibernate加载proxool文件的。。。。。。

 

于是使用了hibernate的参数hibernate.connection.autocommit,设为了true

再测试。。问题居然解决。。。。。至此告一段落。。。虽然proxool的口碑不错,但是配置至今,我发现这家伙的bug还是非常多阿。。。。至今为止已经遇到不少了,而且很多是众所周知的。。。而今天这个也算是一个大bug之一了。。。。

 

写出来也是为了方便遇到相同问题的朋友多一个解决方案,因为我在网上实在没有找到真正能够解决这个问题的方法。。。。

一文搞懂深度学习:最全神经网络介绍 本文是深度学习系列文章的第二篇,我们将深入探讨各种类型的人工神经网络,探索它们独特的特性和应用。 阅读详情

相关推荐

模式分类识别 | TCN间卷积神经网络多特征分类预测(Matlab完整程序)

模式分类识别 | TCN间卷积神经网络多特征分类预测(Matlab完整程序)

前程算法屋的博客 734

从Profiler跟踪提取sql脚本

获得应用程序执行的SQL语句 1、运行Profiler 2、在“文件”菜单上,选择“新建跟踪”命令,或者单击工具栏上的“新建跟踪”按钮。如下图。 3、在“跟踪名称”文本框中,输入跟踪的名称。如下图 4、在“事件选择”选项卡界面中选择要监控的事件。如下图 5、我选择了存储完成调用事件与TSQL语句完成事件。这两个事件是查看Ts

Java_c# 3562

【YOLOv8-pose姿态识别部署至RK3588:模型训练到RKNN落地,让人体姿态分析精度与边缘推理速度双突破】

本教程从YOLOv8-pose模型的姿态识别训练,到RK3588的边缘量化部署,为你打造了一套“高精度+高实+低成本”的人体姿态分析解决方案。无论是健身动作纠正、智能安防行为检测,还是工业人员姿态监控,这套技术都能直接复用——你只需替换数据集与业务逻辑,即可快速落地专属的边缘AI姿态识别系统。如果你在实践中遇到任何卡点,欢迎随交流。记住,人体姿态识别的价值在于“关键点准、推理快、部署易”,而这三者的平衡,正是你通过本教程能掌握的核心能力。

FJN110的博客 298

Hibernate事务回滚问题

发现问题:在service层中调用了update()方法更新实体类,将end_flag设置为1,表示结束。 接着在service中用count()查询已结束实体类的数量,返回的是已经更改过的数量,而在数据库中查询数量为更改之前的数量。找到问题所在并得出结论:在事务还没结束,更改过的数据只在该事务中被更改,还未commit到数据库中,所以在数据库中还是没更改过的数据。

Eaman_Yu的博客 2052

RollbackException(回滚异常)可能的原因和解决方法

异常,首先查看异常的详细信息以获取更多的上下文。仔细分析涉及到的事务、悲观锁定、JPA异常、并发问题、数据库连接池等方面的问题,确保它们在当前的应用程序环境和使用场景下是有效的。根据异常信息,逐步排查可能的原因,以便更好地理解和解决问题。根据异常的上下文,选择合适的解决方法,可能需要与事务管理、数据库、业务逻辑等相关的专业人员进行沟通以获取更多的支持。表示在事务提交发生回滚的异常。这通常是因为在事务提交过程中发生了错误,导致事务需要回滚

Java开源程序猿 2714

could not inspect JDBC autocommit mode

一直出现这个问题,也在网查了很多资料,最终还是没有解决,有解决的请回个帖吧!谢谢 org.apache.jasper.JasperException: could not inspect JDBC autocommit mode at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspSer ...

ada_yangkun的博客 1631

spring+hibernate单元测试 事务自动回滚

问题:使用junit单元测试测试hibernate的二级缓存,可以查询,增删改可以成功,但是数据库没有改变。一开始认为是事务配置没有写对。但是服务器上跑都没问题。最后发现是junit测试默认事务自动回滚的(因为是测试,所以默认不改变数据库)。解决:设置方法的事务自动回滚为flase...

m0_37914211的博客 745

Proxool+hibernate+spring事务自动回滚导致无法提交问题解决收藏

项目需要用到双数据源,而对于连接池,我选择了备受好评的Proxool,结果在spring配置了两个数据源,测试事务候,发现不发生错误, 数据也无法提交出去。。。。。这让我纳闷了很久很久。。。一直以为是我双数据源配置错了,因为在SSH+proxool的情况下配置双数据源真的是第一次 尝试。。。。。   后来逐步测试,直到把双数据源配置去了也发现不能插入,于是开始怀疑是数据库的问题。。。结果不是,...

cmdn_junfengbu的博客 217

ssh 事务不能回滚 Could not roll back Hibernate transaction; nested exception is org.hibernate.Transaction

调试没问题,发布到服务器上一段间报以下异常 org.springframework.transaction.TransactionSystemException: Could not roll back Hibernate transaction; nested exception is org.hibernate.TransactionException: JDBC rollback fai

鑫的专栏 1万+

Hibernate 自动提交autoCommit一般建议设置成false

connection.autocommit=true 这个属性是说,如果是true的话,就是自动提交,比如 在一个业务中中,你有多个操作数据库的子业务, 例如 业务SuperA中有子业务suba,subb,subc..... 如果是自动的话, suba操作成功 提交 subb操作失败 回滚 subc操作失败 回滚 按照我们的逻辑当SuperA中有某一环节操作失败的话,都应

jason_deng的专栏 1万+

Spring3.1.3 + Hibernate4 事务管理简单例子

地址:http://blog.csdn.net/bruce_sky/article/details/8549116 Spring3.1.3 + Hibernate4 事务管理简单例子        2013-01-28 16:0320人阅读评论(0)收藏举报 一 【起源】 开始是因为对Spring事务管理不太了解,想通过做一个小的CRUD demo来加深理解的。在做的过程中费尽周

hewusheng10的专栏 2183

请 关于异常:org.springframework.transaction.TransactionSystem

最近在项目中间遇到一个棘手的问题,希望有经验的朋友能,。 具体问题是:在工程部署到tomcat,然后启动tamcat,登录工程,无任何问题,但是问题出在大概一个小以后,重新访问工程,登录抛出如下异常: 1Exception Type: org.springframework.transaction.TransactionSystemException 2 3网络正忙,请...

energykk 3428

spring事物控制的不解

spring事物控制的不解 spring提供了代理TransactionProxyFactoryBean和拦截器TransactionInterceptor对dao进行事物控制。 但这些都是针对dao方法的控制。也就是说在一个更新方法中(insert或者update等等)利用jdbctemplate或者hibernate更新多张表,可以利用aop做到事物控制。 但个人对dao的理解...

mazhen_null的博客 124

JAVA面试题(1~95)《上》

1、面向对象的特征有哪些方面?  答:面向对象的特征主要有以下几个方面:  - 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。  - 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性...

ywl470812087的博客 4954

关于ADO中的隐性事务

KeyLife富翁笔记 作者: HongYuan标题: 关于ADO中的隐性事务 关键字: 分类: 我学习Delphi,我努力 密级: 保护 (评分: , 回复: 0, 阅读: 230)»» ...

weixin_30421809的博客 178

一个特殊的SQL Server阻塞案例分析

上周,在SQL Server数据库下面遇到了一个有意思的SQL阻塞(SQL Blocking)案例。其实个人对SQL Server的阻塞还是颇有研究的。写过好几篇相关文章。 至于这里为什么要总结一下这个案例,因为这个案例有点意思:     1:使用DMV视图捕获到的Blocking SQL为一个查询语句(这个不是真正引起阻塞的源头SQL语句),等待事件为LCK_M_S。   2:出现阻塞的会话非常...

weixin_33795093的博客 291

ZK数据库实验十二(事务创建)

事务创建

weixin_51591850的博客 834

某人收集的MSSQL扩展存储过程恢复方法—非常全面

恢复sp_addextendedproc语句: create procedure sp_addextendedproc --- 1996/08/30 20:13 @functname nvarchar(517),/* (owner.)name of function to call */ @dllname varchar(255)/* name of DLL con...

weixin_34005042的博客 213

事务里面捕获异常_跟飞哥学编程:SQL入门-:异常和事务

通常,我们并不直接使用数据库,而是根据用户输入,准备好SQL语句,然后将SQL语句发送给SQL Server执行。在这个过程中,总会发生一些我们“预料不到”,或者“即使预料到也无法处理”的问题。比如:SQL Server突然宕机或重启磁盘/内存不够用,无法插入数据因为各种约束导致SQL语句无法执行……这些情况通常被称之为:异常异常有候也被称之为“错误(error)”,但同学们注意区分“SQL语法...

weixin_39914752的博客 560

分布式电源接入对配电网的影响_配电网谐波_电压波动_谐波_电网谐波_分布式电

潮流求解,电压波动以及谐波总畸变仿真程序

行政办公综合系统(VB 和ACCESS)

自己一个一个代码敲出来的 VB挂ACCESS 程序 含部分数据

上一篇: Hibernate对substring和cast的支持问题
下一篇: MS SQL2005插入中文乱码的问题解决
fableking
博客等级 码龄20年 35粉丝 54原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值