one session per request with detached object parten 求解

作者探讨了在使用SSH2框架时遇到的关于Hibernate会话管理问题,特别是在一次请求一个会话模式下如何正确处理多个实体之间的关联操作,并分享了问题的解决过程。

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

小弟自学ssh2一段时间了,其间也做了一些小项目,但是有个地方老是搞不清楚,一直很苦恼,希望哪位精通ssh的大大能给我一个详细一点的解答;
对于hibernate开发文档里面,提到的one session per request with detached object parten开发模式,感到相当纠结,按照自己的理解应该是web.xml里面配置opensessioninview,托管于spring,每次在view层提交一次,在整个request过程中,只会出现一次session open和session close,但是如果有三个数据库表,分别为book ,user,borrowbook,分别记录的是用户,图书信息,借阅信息,其中borrowbook表是记录用户和book的关联信息,也就是实体Borrowbook对于Book是一对一,Borrowbook对于User是多对一的关系。好了,现在,如果我在view层上想借一本书,view层提供了userid,和bookid,所以提交的时候,在action层,是不是应该先根据userid和bookid拿出user和book的持久化对象,然后新建一个Borrowbook的瞬态对像,然后用borrowbook.add(user),borrowbook.add(book),borrowbook.add(new Date()),然后在action层调用service的save方法进行持久化???但是如果时这样的话,我用debug查看,发现session打开三次,也关闭了三次,囧,感觉这和one session per request with detached object parten 的概念有出路,哪位大大可以给个相信的解答啊 ,谢谢

自己解决了,嘿嘿,居然是struts.xml配置文件出现问题,debug是个好东西,嘿嘿,还有就是,在web.xml中dwr忘记给添加<filter-mapping>
<filter-name>openSessionInView</filter-name>
<url-pattern>/dwr/*</url-pattern>
</filter-mapping>
囧啊,不过困扰多日的问题能够解决还是很兴奋,当然这不得不感谢土豆老大的提醒了,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值