首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hibernate sqlite SQLITE_BUSY

Hibernate sqlite SQLITE_BUSY
EN

Stack Overflow用户
提问于 2015-03-31 09:12:08
回答 1查看 1.3K关注 0票数 2

我试图在多线程应用程序中使用带有sqlite的hibernate,并获得SQLITE_BUSY错误:

代码语言:javascript
复制
[SQLITE_BUSY]  The database file is locked (database is locked)

在一个线程中复制错误的简化代码:

代码语言:javascript
复制
Session session = sessionFactory.openSession();
session.beginTransaction();
session.save(new Object());
session.flush();

Session session2 = sessionFactory.openSession();
session2.beginTransaction();
session2.save(new Object());
session2.getTransaction().commit(); 

正如广泛建议的那样,我将pool_size设置为1,但这并没有帮助

代码语言:javascript
复制
<property name="connection.pool_size">1</property>
<property name="hibernate.connection.pool_size">1</property>

我使用的包:

代码语言:javascript
复制
sqlite-jdbc: 3.8.7
hibernate: 4.3.8
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-17 08:32:14

自定义连接池hibernate-c3p0完成了这项工作。只需添加到pom.xml:

代码语言:javascript
复制
<dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-c3p0</artifactId>
      <version>4.3.7.Final</version>
</dependency>

对于hibernate.cfg.xml:

代码语言:javascript
复制
<property name="hibernate.c3p0.min_size">1</property>
<property name="hibernate.c3p0.max_size">1</property>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29364837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档