求教hibernate的问题

hyb9471 2019-03-13 04:14:26
hibernate的保存操作为什么会越来越慢
一千多个人 每个人50条某数据
循环这些人 第一个人保存50条 1秒多 慢慢慢慢到100个人左右保存时间一个人就20秒
到200多个人每个人差不多要保存40秒了
这是什么原因啊
...全文
240 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
用日志工具 当你执行完某一个动作 去看日志创建了几个连接 最后有没有关闭连接 有没有归还连接池线程什么得 debug模式都能看到 不是我说什么就是什么 毕竟我没有看过你得代码 你项目怎么写的我都不知道 你让我猜呢
hyb9471 2019-03-14
  • 打赏
  • 举报
回复
引用 4 楼 骑着毛驴去散步 的回复:

opensessioninviewfilter跟这个没关系 这是视图页面保持session不被关闭的懒加载用的
我是说你的session是怎么创建的

hibernate创建session有好多种的 比如session.opensession();还有一种是getcurrensession
这两种创建是有区别的
还有就是创建了session 把session保存到了thread中去最后关闭了session却没有把session从thread中分离就会造成你这种现象
还有一个用完session及时关闭
好多原因的给你说不清楚

能教教我怎么分离线程吗 我也没看到我这里是不是绑定线程的 我调用的 this.getHibernateTemplate().save()方法
  • 打赏
  • 举报
回复
还有你的hibernate二级缓存是什么状态开启还是关闭的
session有没有即使关闭
  • 打赏
  • 举报
回复

opensessioninviewfilter跟这个没关系 这是视图页面保持session不被关闭的懒加载用的
我是说你的session是怎么创建的

hibernate创建session有好多种的 比如session.opensession();还有一种是getcurrensession
这两种创建是有区别的
还有就是创建了session 把session保存到了thread中去最后关闭了session却没有把session从thread中分离就会造成你这种现象
还有一个用完session及时关闭
好多原因的给你说不清楚
stacksoverflow 2019-03-13
  • 打赏
  • 举报
回复
是不是都保存到内存里了,保存之后flush一下,或者能commit一下?
hyb9471 2019-03-13
  • 打赏
  • 举报
回复
引用 1 楼 骑着毛驴去散步 的回复:
你的session是怎么创建的 spring?还是hibernate 创建好的session是open还是currencies 还是绑定到了thread上
你说清楚问题
你这问题明显是session问题
如果绑定到线程上的session 只关闭了还不行 还得和线程解绑

hibernate创建的session 配置了 opensessioninviewfilter 保持到请求结束
  • 打赏
  • 举报
回复
你的session是怎么创建的 spring?还是hibernate 创建好的session是open还是currencies 还是绑定到了thread上
你说清楚问题
你这问题明显是session问题
如果绑定到线程上的session 只关闭了还不行 还得和线程解绑

67,515

社区成员

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

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