spring对hibernate多数据源均实现延时加载
来源:互联网 发布:校园表白墙php源码 编辑:程序博客网 时间:2024/05/15 07:38
最近在优化公司的系统的时候mysql数据库采用了读写分离策略,同样的sessionFactory要配置两个,但原有的项目中大量应用了hibernate的延时加载,在调试的时候才发现,无论如何都不能同时实现两个sessionFactory的延时加载,后来通过翻阅资料和阅读源码,终于找到了解决方案:
两个sessionFactory的在spirng配置如下:
<beanid="sessionFactoryAssist"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="configurationClass"><value>com.landray.kmss.sys.config.loader.HibernateConfiguration</value></property><property name="hibernateProperties"><props><prop key="hibernate.dialect">${hibernate.dialect}</prop></props></property><property name="dataSource"><ref bean="dataSourceAssist" /></property><property name="lobHandler"><ref bean="oracleLobHandler" /></property></bean><beanid="sessionFactory"class="com.landray.kmss.sys.config.loader.KmssHibernateLocalSessionFactoryBean"><property name="configurationClass"><value>com.landray.kmss.sys.config.loader.HibernateConfiguration</value></property><property name="hibernateProperties"><props><prop key="hibernate.dialect">${hibernate.dialect}</prop></props></property><property name="dataSource"><ref bean="dataSource" /></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均可以实现延时加载了。
- spring对hibernate多数据源均实现延时加载
- hibernate如何实现延时加载
- Spring + Hibernate 实现多数据库链接
- Hibernate延时加载
- Hibernate延时加载
- hibernate中的延时加载
- Hibernate延时加载
- hibernate延时加载
- hibernate 延时加载
- Hibernate延时加载
- hibernate延时加载
- Spring使用OpenSessionInViewFilter解决Hibernate的lazy延时加载问题
- Spring使用OpenSessionInViewFilter解决Hibernate的lazy延时加载问题
- Spring使用OpenSessionInViewFilter解决Hibernate的lazy延时加载问题
- Spring使用OpenSessionInViewFilter解决Hibernate的lazy延时加载问题
- Spring使用OpenSessionInViewFilter解决Hibernate的lazy延时加载问题
- Spring使用OpenSessionInViewFilter解决Hibernate的lazy延时加载问题
- Spring使用OpenSessionInViewFilter解决Hibernate的lazy延时加载问题
- 走台阶问题(转)
- mysql建立触发器
- mysql 触发器更新本表
- 过滤器配置多个url-pattern
- 避免代理服务器的缓存带来的问题
- spring对hibernate多数据源均实现延时加载
- 惨痛的教训
- tomcat工作原理(转)
- mysql中使用光标的demo
- mysql中的decode(转)
- 查询重复记录和删除重复记录
- mysql中文排序
- myeclipse提速(转)
- 自己写的一个类orm映射工具