Hibernate中多个Schema中的相同表

时间:2015-12-01 21:30:56

标签: java mysql hibernate

我有一个运行多个dbs的mysql服务器,它们有一些完全相同的表(不要问,我继承了这个项目):

DB01,DB02和DB03具有以下表格:

CREATE TABLE `table1` (
  `id` int(11) NOT NULL,
  `city` varchar(255) DEFAULT NULL,
  `state` varchar(16) DEFAULT NULL,
  `zip` varchar(11) DEFAULT NULL,
  `code` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

它们中还有许多其他表相同,而且DB01,DB02和DB03还有其他独有的表。

是否可以为上面的表结构使用单个模型/服务层,以便我可以使用Hibernate单独查询每个表?

我所尝试的是设置一个抽象超类(使用@MappedSuperclass),但这需要有很多继承此类的文件,唯一的区别是@Table(name =" DB01.table1&# 34;),@ Table(名称=" DB02.table1")...参考。

任何指针都非常感谢!

1 个答案:

答案 0 :(得分:0)

我建议定义多个DataSource并在飞行中交换它们。无需繁殖课程。

E.g。 this approach基于org.springframework.aop.target.HotSwappableTargetSource