个人对OpenSessionInView的看法

探讨了OpenSessionInView在Hibernate中的使用,分析其如何解决懒加载问题,并讨论由此带来的数据库连接管理和生命周期管理等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        OpenSessionInView的确是可以解决hibernate在懒加载上的问题,让session绑定在request上,当request到达时创建session,在request结束,view显示完毕时,关闭session.这样可以等需要的时候,再发送请求,拿到数据,减少了内存利用率,也提高了效率!

        但是,这样的设置,也带来了其他一些方面的问题!

OpenSessionInView 让hibernate生命周期边长,从request-->Controller---->service---->dao-->db-->dao--service---controller----request----view,在这个环节必须全部完成,不然,session就不换被关闭!假如这个环节中的任何一个操作出现问题,session将会占用的同时,Connection将不能被回收,数据库连接是有限的,

所以个人觉得:

    设置many一方为lazy这个是很正常的一件事,没理由我想知道一个班级在几楼而需要把所有学生数据都弄出来,这样是不正确的;解决这个问题,我的方法还是,不用OpenSessionInView,数据需要的时候再去获取,我宁愿再去访问一次,再发一次请求,也不愿把hibernate生命周期延长

   

    

     

转载于:https://my.oschina.net/gavinnie/blog/312194

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值