[心缘地方]同学录
首页 | 功能说明 | 站长通知 | 最近更新 | 编码查看转换 | 代码下载 | 常见问题及讨论 | 《深入解析ASP核心技术》 | 王小鸭自动发工资条VBA版
登录系统:用户名: 密码: 如果要讨论问题,请先注册。

[备忘]多个数据源时的OpenSessionInViewFilter,与延迟加载lazy

上一篇:[备忘]mysql远程访问慢的问题
下一篇:[备忘]spring+hibernate里,getSession没关闭导致的连接泄漏~~

添加日期:2015/1/9 15:44:31 快速返回   返回列表 阅读2518次
延迟加载就是一个bean的XXX属性,直到getXXX()时才会去数据库取得,
默认是Service层执行完就关闭session了?所以到Action层时,再调用getXXX()会报错?
所以,需要在web.xml里加OpenSessionInViewFilter,
它会在request开始时,弄一个Session,然后进行后续动作,直到response结束才关闭这个session,
这样,Action层再getXXX()时就不会报错了。

不咋懂,大概这意思吧。


<filter>
    <filter-name>hibernateFilter</filter-name>
    <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
    <init-param>
        <param-name>sessionFactoryBeanName</param-name>
        <param-value>sessionFactory</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>hibernateFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>



OpenSessionInViewFilter只能指定一个sessionFactoryBeanName,默认就是“sessionFactory”。

当你有多个数据源时,你会做多个dataSource,多个sessionFactory,多个dao~~

反正都是多套~~

那么,问题来了,这只能写一个sessionFactory的名字~~

结果就是只有用这个sessionFactory的dao的延迟加载是OK的,

用其它的sessionFactory的延迟加载是报错的,说no session什么的~~

-------------------------------

郁闷了大半天,又搜又查的~~

妈的,解决方法很简单~~再加一个这个Filter就行了


<filter>
    <filter-name>hibernateFilter2</filter-name>
    <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
    <init-param>
        <param-name>sessionFactoryBeanName</param-name>
        <param-value>sessionFactory2</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>hibernateFilter2</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>


--------------------------------------
感谢这篇文章:
http://softwaredevtips.wordpress.com/2012/05/25/springhibernate-multiple-datasources/
 

评论 COMMENTS
没有评论 No Comments.

添加评论 Add new comment.
昵称 Name:
评论内容 Comment:
验证码(不区分大小写)
Validation Code:
(not case sensitive)
看不清?点这里换一张!(Change it here!)
 
评论由管理员查看后才能显示。the comment will be showed after it is checked by admin.
CopyRight © 心缘地方 2005-2999. All Rights Reserved