休眠程序未终止

Posted

技术标签:

【中文标题】休眠程序未终止【英文标题】:Hibernate program not terminating 【发布时间】:2014-06-24 23:36:30 【问题描述】:

我写了一个简单的 Hibernate 程序,它似乎工作正常,数据被加载到数据库中,表被创建。但是调用 commit() 后程序不会终止。

这是我正在使用的一段代码:

    SessionFactory sessionFactory= new Configuration().configure().buildSessionFactory();
    Session session = sessionFactory.openSession();
    session.beginTransaction();
    session.save(model);
    session.getTransaction().commit();

我使用 mysql 作为数据库,在 eclipse 中运行程序。

请就这里可能出现的问题提出建议。

谢谢, 维平

【问题讨论】:

请详细说明。从您的帖子中可以假设您认为提交等于程序终止。虽然这不是真的,但它只是完成交易。接下来会发生什么取决于接下来的代码。 在 main() 中,commit() 是最后一个方法调用,因此如果 commit() 成功,那么我相信它应该退出。 program using hibernate does not terminate 的可能重复项 【参考方案1】:

你错过了这个(下面提交):

session.close();

最终代码:

SessionFactory sessionFactory= new Configuration().configure().buildSessionFactory();
Session session = sessionFactory.openSession();
session.beginTransaction();
session.save(model);
session.getTransaction().commit();
session.close(); //Here

【讨论】:

我试过 session.close() 但是程序仍然没有终止。事实上,在 mysql 中,我尝试手动提交以检查提交是否无法从 java 工作,这仍然没有帮助:-( 你能发布你的 hibernate.cfg.xml 文件吗...关于 hibernate.connection.release_mode 的行【参考方案2】:
sessionFactory.close();

是你要找的东西

【讨论】:

以上是关于休眠程序未终止的主要内容,如果未能解决你的问题,请参考以下文章

多线程(线程的状态终止休眠礼让合并)

Tapestry 5.4 未找到用于休眠的驱动程序

如何修复应用休眠 1 分钟后未收到 Firebase FCM 的通知

HQL查询中的休眠表未映射错误

在 Spring Boot 应用程序中未针对休眠和弹簧过滤 Log4j2 日志级别

休眠:未配置 CurrentSessionContext