gpt4 book ai didi

java - 如何在 Spring 管理 hibernate session

转载 作者:行者123 更新时间:2023-11-28 22:20:11 26 4
gpt4 key购买 nike

我对 session 关闭有疑问,在运行此应用程序期间会产生什么影响,如果它投入生产会怎样。

我在我的生产服务器中遇到了两个问题,它在应用程序使用期间消耗了大量内存,大约 800MB 才刚刚启动。

一段时间后它会出现内存不足错误和服务器崩溃

我正在使用 tomcat 服务器部署我的应用程序

我的代码是这样的

@Transactional
public Collection list(String queryString, Object[] value) throws Exception {
Session session = this.sessionFactory.getCurrentSession();
Query query = session.createQuery(queryString);
return query.list();
}

@Transactional
public Collection list(String queryString, Object[] value) throws Exception {
Session session = this.sessionFactory.openSession();
Query query = session.createQuery(queryString);
return query.list();
}

如果我确实关闭了 session ,那么惰性初始化会给出 session 已关闭的错误。

请帮我解决这个问题。我们如何使用 spring 配置处理 hibernate 中的打开 session 我正在使用 hibernate 3.6.1 和 spring 3.0.6。

最佳答案

将 VM 参数添加到您的服务器以避免内存不足错误

-Xms256m -Xmx1024m -XX:+DisableExplicitGC -Dcom.sun.management.jmxremote
-XX:PermSize=256m -XX:MaxPermSize=512m

并添加

@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)

上面的代码严格处理事务而不用担心Session对象

关于java - 如何在 Spring 管理 hibernate session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24118426/

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