hibernate opensession问题

q455295165 2014-04-22 10:16:07
最近在做web rss新闻订阅功能,然后在rss解析出来的新闻插入数据库中
但是插入中出错了,插入5条后页面卡主,控制台也卡主了,也不报错。猜想应该是opensession过多导致的。
我插入新闻的代码如下

public void insert(News news) {
// TODO Auto-generated method stub
System.out.println("enter dao inserNews");

Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
try {
session.save(news);
tx.commit();
} catch (Exception e) {
tx.rollback();
e.printStackTrace();
} finally {
System.out.println("clear");
session.clear();
}
}

请问下具体是怎么一回事
...全文
101 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
小灯光环 2014-04-22
  • 打赏
  • 举报
回复
引用 2 楼 q455295165 的回复:
[quote=引用 1 楼 wlwlwlwl015 的回复:] 你的session开太多了,你从没有close啊,session.clear();改成:session.close(); 建议你用: getCurrentSession(),这样创建的session会自动关闭的。
恩 谢谢啊,我以前也试过,不过我把openSession改成getCurrentSession(),同时又把clear改成close然后还是出错。。 现在知道了,应该是 open的话就要close,get采用clear不知道是不是。 呵呵又是你帮助了我 多谢了![/quote] 不客气,你要用 getCurrentSession()的话就不能再写session.close();了,这个会自动关闭的。你要写session.close();就用opensession,试试看,记得是这样的。
q455295165 2014-04-22
  • 打赏
  • 举报
回复
引用 1 楼 wlwlwlwl015 的回复:
你的session开太多了,你从没有close啊,session.clear();改成:session.close(); 建议你用: getCurrentSession(),这样创建的session会自动关闭的。
恩 谢谢啊,我以前也试过,不过我把openSession改成getCurrentSession(),同时又把clear改成close然后还是出错。。 现在知道了,应该是 open的话就要close,get采用clear不知道是不是。 呵呵又是你帮助了我 多谢了!
小灯光环 2014-04-22
  • 打赏
  • 举报
回复
你的session开太多了,你从没有close啊,session.clear();改成:session.close(); 建议你用: getCurrentSession(),这样创建的session会自动关闭的。

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧