首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

spring对hibernate多数据源均兑现延时加载

2012-07-27 
spring对hibernate多数据源均实现延时加载???? 最近在优化公司的系统的时候mysql数据库采用了读写分离策略

spring对hibernate多数据源均实现延时加载

???? 最近在优化公司的系统的时候mysql数据库采用了读写分离策略,同样的sessionFactory要配置两个,但原有的项目中大量应用了hibernate的延时加载,在调试的时候才发现,无论如何都不能同时实现两个sessionFactory的延时加载,后来通过翻阅资料和阅读源码,终于找到了解决方案:

两个sessionFactory的在spirng配置如下:

 <beanid="sessionFactoryAssist"/></property><property name="lobHandler"><ref bean="oracleLobHandler" /></property></bean><beanid="sessionFactory"/></property><property name="lobHandler"><ref bean="oracleLobHandler" /></property></bean>

?

在web.xml中配置两个hibernate filter,分别管理这两个sessionFactory,来实现延时加载:

?

<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>           <init-param>               <param-name>singleSession</param-name>               <param-value>true</param-value>           </init-param>           <init-param>               <param-name>flushMode</param-name>               <param-value>AUTO</param-value>           </init-param>  </filter><filter><filter-name>hibernateFilterAssist</filter-name><filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>  <init-param>                 <param-name>sessionFactoryBeanName</param-name>                 <param-value>sessionFactoryAssist</param-value>           </init-param>           <init-param>               <param-name>singleSession</param-name>               <param-value>true</param-value>           </init-param>           <init-param>               <param-name>flushMode</param-name>               <param-value>AUTO</param-value>           </init-param>  </filter>

?

?至此,两个sessionFactory均可以实现延时加载了。

?

热点排行