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;
- org.postgresql.util.PGobject无法强制转换为org.postgis.PGgeometry
- JPA(Hibernate)和自定义表前缀
- 即使使用C3P0 +显式session.close(),Hibernate连接也不会关闭
- 非托管线程Spring Quartz Websphere Hibernate
- HiLo发电机策略不起作用
- JPA GROUP BY实体 – 这可能吗?
- java.lang.ClassCastException:java.lang.Long无法在java 1.6中强制转换为java.lang.Integer
- 如何构建一个动态查询,该查询添加了迄今为止的天数,并使用条件API将该日期与另一个日期进行比较?
- HibernateException:找到同一集合的两个表示