Spring-Hibernate使用多个数据源/数据库

我正在使用一个使用Spring MVC 3和Hibernate的Web应用程序

我想为我的Web应用程序使用2个数据源MySql和Oracle数据库,

我已经阅读了许多关于“spring-hibernate multiple datasource / database”的教程和解决问题的例子:

directjump2java.blogspot.com

堆栈溢出

论坛spring

等等。

但是当我每次运行它时,配置只读取我的第一个数据库配置(MySql)并显示此错误Table 'db_prod.ksei_lookup_holiday' doesn't exist db.prod是我的第一个数据库(MySql)而KSEI_LOOKUP_HOLIDAY是我的第二个数据库(Oracle),则

这是我的spring.xml

                 org.hibernate.dialect.MySQL5Dialect true                   org.hibernate.dialect.Oracle10gDialect true       

这是我的第一个数据库(MySql)的DAO实现

 @Repository @Qualifier(value="sessionFactory") public class UserDaoImpl extends HibernateDaoSupport implements UserDao{ @Autowired private UserDaoImpl(SessionFactory sessionFactory){ setSessionFactory(sessionFactory); } 

这是我的第二个数据库(Oracle)的DAO实现

 @Repository @Qualifier(value="sessionFactorySOAAPP") public class UpdateKSEIDaoImpl extends HibernateDaoSupport implements UpdateKSEIDao{ @Autowired private UpdateKSEIDaoImpl(SessionFactory sessionFactorySOAAPP){ setSessionFactory(sessionFactorySOAAPP); } 

任何帮助都会很愉快:)

问题是你已经习惯了

sessionFactorySOAAPP

您应该使用

如果选中“sessionFactorySOAAPP”,则下面的属性名称应为“dataSourceSOAAPP”,而不是“dataSource”。

这是我的配置文件:

                   true UTF-8 UTF-8 org.hibernate.dialect.MySQLDialect  update false          true UTF-8 UTF-8 org.hibernate.dialect.MySQLDialect  update false             

@geoand在他发现的错误中是正确的。 除此之外,上下文xml似乎正确并适合我。 但是,对我来说,只有@qualifier与@Autowired一起使用才有效。

 @Repository public class BusinessDaoImpl implements BusinessDao { @Autowired @Qualifier(value="sessionFactory") SessionFactory sessionFactory;