本站首页    管理页面    写新日志    退出


«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告
 本博客在此声明所有文章均为转摘,只做资料收集使用。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:1304
评论数量:2242
留言数量:5
访问次数:7584354
建立时间:2006年5月29日




[Spring]OpenSessionInView模式(Spring+Hibernate)
软件技术,  电脑与网络

lhwork 发表于 2006/6/15 11:17:56

Spring+Hibernate中,  集合映射如果使用lazy="true", 当PO传到View层时, 出现未初始化session已关闭的错误,只能在dao先初始化 parent.getChilds().size();Spring提供Open Session In View来解决这个问题, 有两种方式1. Interceptor     <!-- =========== OpenSession In View pattern ==============-->    <bean id="openSessionInViewInterceptor"          class="org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor">        <property name="sessionFactory" ref="sessionFactory"/>    </bean>    <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">        <property name="interceptors" ref="openSessionInViewInterceptor"/>        <property name="mappings">            <props>            ......            </props>        </property>    </bean> 2. Filter <web-app> <filter><filter-name>hibernateFilter</filter-name><filter-class>org.springframework.orm.hibernate.support.OpenSessionInViewFilter</filter-class></filter> <filter-mapping><filter-name>hibernateFilter</filter-name><url-pattern>*.do</url-pattern></filter-mapping></web-app> 说明: 个人更喜欢用Interceptor方式, filter是在web.xml中定义有了OpenSessionInView,并不是一切就ok了。简单的crud可以,但对于复杂业务逻辑就要想点法子。OSIV默认是request per session的, 所以即使没有显式update(po),Hibernate也会帮你保存的,dao的业务判断就无效,还好有evict()可用。update code // Controllerpublic ModelAndView update() {    p = dao.getVo(id);    bindObject(request);    dao.update(p);}// Daopublic Object getVo(id) {    p = getHibernateTemplate().get(clazz, id);    p.getChilds().size();    getHibernateTemplate().evict(p);    return p;}public void update(p) {    oldP = getVo(id);    // ++--(oldP);    getHibernateTemplate().update(p);    // ++--(p);}


阅读全文(3845) | 回复(1) | 编辑 | 精华
 


回复:OpenSessionInView模式(Spring+Hibernate)
软件技术,  电脑与网络

qq(游客)发表评论于2008/11/25 19:47:19

回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验回复:birt使用经验


个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.498 second(s), page refreshed 144761764 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号