栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Hibernate配置多个数据源和多个会话

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Hibernate配置多个数据源和多个会话

<!-- configure hibernate session factory for FirstDB --><bean id="dataSource"     destroy-method="close" p:driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"    p:url="jdbc:sqlserver://${FirstDB_DB_HosName}${FirstDB_DB_instanceName}:${FirstDB_DB_PortNumber};databaseName=${FirstDB_DB_DatabaseName};username=${FirstDB_DB_UserName};password=${FirstDB_DB_Password};" /><bean id="sessionFactory" >   <property name="dataSource" ref="dataSource" />    <property name="configLocation"> <value>classpath:hibernate.cfg.xml</value>    </property>    <property name="hibernateProperties">        <props> <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop> <prop key="hibernate.current_session_context_class">thread</prop> <prop key="show_sql">false</prop>        </props>    </property></bean> <!-- configure hibernate session factory for SecondDB database --><bean id="SecondDBdataSource"     destroy-method="close" p:driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"    p:url="jdbc:sqlserver://${SecondDB_DB_HOST}${SecondDB_DB_INSTANCE}:${SecondDB_DB_PORT};databaseName=${SecondDB_DB_DATAbaseNAME};username=${SecondDB_DB_USERNAME};password=${SecondDB_DB_PASSWORD};" /> <bean id="secondDBSessionFactory" >   <property name="dataSource" ref="SecondDBdataSource" />    <property name="configLocation"> <value>classpath:hibernate-SecondDB.cfg.xml</value>    </property>    <property name="hibernateProperties">        <props> <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop> <prop key="hibernate.current_session_context_class">thread</prop> <prop key="show_sql">false</prop>        </props>    </property> </bean>

在Hibernate DAO中,我们可以使用@Qualifier注释,如下所示连接2个会话工厂

@Transactional(propagation= Propagation.REQUIRED, readonly=false)public class HibernateDao<E, K extends Serializable> implements GenericDao<E, K> {  @Autowired  @Qualifier(value="sessionFactory")  private SessionFactory sessionFactory;  @Autowired  @Qualifier(value="secondDBSessionFactory")  private SessionFactory secondDBSessionFactory;  protected Class<? extends E> daoType;  public HibernateDao() {    daoType = (Class<E>) ((ParameterizedType) getClass().getGenericSuperclass())         .getActualTypeArguments()[0];  }  //Remaining Code}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/411214.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号