我们正在将数据库从一个数据库迁移到另一个数据库,我们无法承受应用程序的停机时间。因此,我们希望在此过程中编写相同的实体,一旦迁移,我们就可以删除源代码。我们正在为应用程序使用hibernate。有没有什么方法可以让hibernate在具有相同表结构的多个模式中编写相同的实体? 。它也应该是跨这两个DB的事务性的
答案 0 :(得分:0)
您需要创建2个会话,每个会话使用一个数据库连接,然后在保存bean时从两个会话中调用session.save()
。
示例:
Foo foo = new Foo();
foo.setName('FooName');
foo.setType('FooType');
session1.save(foo);
session2.save(foo);
您可以将其打包在Service
中,这样您就可以使用@Transactional
进行处理,避免保存在一个数据库中,而不是保存在另一个数据库中。
答案 1 :(得分:0)
如果您熟悉持久性单元,那么它将非常适合您。您可以使用定义持久性单元的多个数据源(我的意思是数据库连接)。请参阅spring persistence unit和persistence context的文档。
我希望它能帮助你实现目标。