hibrenate 运行一段时间后,出现 org.hibernate.TransactionException: commit failed 错误

本贴最后更新于 2770 天前,其中的信息可能已经时移世异

网上的解决方法如下:

方法一:上网查了一下,有人说是数据库事务的原因,要把 hibernate 的 autocommit 设为 false,我找了一下这个好像要在代码里面设置,而不能通过简单的设置 Hibernate 的配置文件来设置,就没有继续走这条路。后来想到可能是数据库连接池的原因。

方法二:在 hibernate 配置文件中加入对 c3p0 连接池的配置,同时将 c3p0-0.8.4.5.jar 拷贝到应用的 lib 文件夹下。这里说明一下,如果没有这个配置,hibernate 默认使用其自身的数据库连接池。配置后则采用第三方的 c3p0 连接池。

<property name="hibernate.connection.provider_class">
org.hibernate.connection.C3P0ConnectionProvider
property>
<property name="hibernate.c3p0.max_size">
200
property>
<property name="hibernate.c3p0.min_size">
5
property>
<property name="hibernate.c3p0.timeout">
120
property>
<property name="hibernate.c3p0.max_statements">
100
property>
<property name="hibernate.c3p0.idle_test_period">
120
property>
<property name="hibernate.c3p0.acquire_increment">
2
property>

把 Hibernate 的 connection.autocommit 设置为 false

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...