栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Swing应用程序中使用Hibernate进行会话管理

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Swing应用程序中使用Hibernate进行会话管理

单节。当您需要执行一组操作(例如,在对话框的“确定”按钮后更新数据)时启动事务,最后提交tx。但是,该连接一直处于打开状态(因为它是同一会话),因此Hib和RDBMS都可以使用所有缓存机会。

如果连接断开,实现透明的会话重新打开也是一个好主意-用户倾向于长时间打开应用程序,即使周末重新启动数据库服务器,它也应星期一继续工作。

更新资料

Jens Schauder提供了使用多个会话的理由:对会话进行部分(不需要的)更新。好吧,这取决于您使用Hibernate的方式。

假设我们打开了两个对话框(如Jens的博客示例中所示)。如果用户单击一个单选框,然后我们立即更新与此单选框关联的Hibernate实体,则当用户单击“取消”时,我们会遇到麻烦-
会话已经更新。

如我所见,正确的方法是仅更新对话框变量(非Hibernate对象)。然后,当用户单击“确定”时,我们开始一个事务,合并更新的对象,然后提交该事务。没有垃圾被保存到会话中。

MyHibernateUtils.begin();Settings settings = DaoSettings.load();// update setttings hereDaoSettings.save(settings);MyHibernateUtils.commit();

如果我们实现了关注点的清晰分离,则稍后可以通过简单更改MyHibernateUtils.begin()实现来切换到多个会话。

至于可能的内存泄漏,那么…
Transaction.commit()调用Session.flush()(AFAIK也将其清除缓存)。同样,可以通过调用Session.setCacheMode()来手动控制缓存策略。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/467086.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号