gpt4 book ai didi

database - 正确关闭 Hibernate 事务

转载 作者:搜寻专家 更新时间:2023-10-30 20:19:25 24 4
gpt4 key购买 nike

我正在调查我的代码中的连接泄漏。我们使用 c3p0 来管理连接池,我的一般 Hibernate 使用模式是这样的:

EntityManager entityManager = entityManagerFactory.createEntityManager();

try {

EntityTransaction transaction = entityManager.getTransaction();
transaction.begin();

//..Work involving calls to find() and merge()

transaction.commit();

} catch (... e) {
//..log message, throw nicer exceptions

} finally {
entityManager.close();
}

此代码是否有可能泄漏数据库连接?我是否必须在出现故障时显式回滚事务,还是自动完成? entityManager.close() 是否确保数据库连接返回到连接池中?

最佳答案

在所有的 catch block 中使用 transaction.rollback()。事务将在没有提交的情况下关闭

关于database - 正确关闭 Hibernate 事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13590138/

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