我有一个 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 单独查询每个表?
我尝试的是设置一个抽象父类(super class)(使用@MappedSuperclass),但这需要有很多继承该类的文件,唯一的区别是@Table(name =“DB01.table1”),@表(名称=“DB02.table1”)...引用。
非常感谢任何指点!
最佳答案
我建议定义多个数据源并动态交换它们。无需增加类。
例如this approach基于org.springframework.aop.target.HotSwappableTargetSource
关于java - Hibernate 中多个模式中的相同表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34030566/