我试图将数据从Firebird数据库迁移到MySQL。我有hibernate设置来创建初始数据库,现在我试图迁移数据。我最初的想法是设置第二个hibernate会话连接到另一个数据库,然后循环以加载和保存数据,但我没有得到数据。我想知道是否可以从一个会话加载数据并将其保存到另一个会话中。
try (Session mySqlSession = mySqlSessionFactory.openSession(); Session firebirdSession = firebirdSessionFactory.openSession()) {
mySqlSession.beginTransaction();
firebirdSession.beginTransaction();
mySqlSession.createSQLQuery("SET FOREIGN_KEY_CHECKS=0").executeUpdate();
mySqlSession.getTransaction().commit();
Criteria criteria = firebirdSession.createCriteria(databaseTable);
for (Object record : criteria.list()) {
mySqlSession.save(record);
mySqlSession.flush();
}
mySqlSession.getTransaction().commit();
mySqlSession.createSQLQuery("SET FOREIGN_KEY_CHECKS=1").executeUpdate();
mySqlSession.getTransaction().commit();
}