【问题标题】:Database migration with Hibernate使用 Hibernate 进行数据库迁移
【发布时间】:2017-02-10 12:09:54
【问题描述】:

我是休眠新手。从互联网资源学习。 众所周知,在 Hibernate Dialect 的帮助下,我们可以轻松地将一个数据库迁移到另一个数据库(例如 DB2 To MySQL),即我们只能迁移 Java 部分。

但是如何迁移特定于数据库的存储过程和索引呢? hibernate可以提供这样的特性来迁移吗?

【问题讨论】:

  • 我猜这个问题太宽泛了。数据库迁移是什么意思?使用 Hibernate,可以在不同的数据库上使用相同的代码(实际上这可能更困难,部分原因是您提到的问题(例如存储过程)。这不能由 Hibernate 自动完成)。但是将数据从一个数据库传输到另一个数据库是另一个问题,这不是 Hibernate 的工作。
  • 好的,感谢您的评论。是的,我赞成您的评论,即 Hibernate 不关心数据库特定的东西(存储过程或索引)。任何想法,有什么工具可以帮助我们成功地将数据库从 DB2 迁移到 MySQL 或 Postgresql?

标签: java hibernate database-migration


【解决方案1】:

Hibernate 用于将 java 类对象存储到数据库中并按原样检索它。那是一个ORM框架。 hibernate 可以在您的数据库迁移中为您提供以下帮助:

1。通过更改一些属性,如方言、连接 url、驱动程序类等,您可以将 java 类对象存储/获取到您要迁移到的新数据库中。

2。逆向工程:如果您的旧数据库中已经有表结构(包含表之间的所有关系),那么使用逆向工程您可以为休眠创建 POJO 类。

Netbeans 内置支持逆向工程。
Hibernate Tool/Plugin 可用于 Eclipse IDE 实现逆向工程。

现在,在您的数据库中创建的存储过程、触发器等不是来自休眠状态。这意味着休眠与它无关。因为,在您的数据库上运行的额外内容(过程、游标、触发器等)比用于存储/操作/获取数据的 java 应用程序具有一些特殊用途。

因此,您可以从旧数据库迁移到新数据库,但不需要休眠来迁移那些额外的东西。相反,您可以使用像 Migrating Oracle Databases to SQL Server 这样的一些技术或程序。

这些事情(存储过程,触发器迁移)可以在数据库级别完成,Java应用程序与它无关。

【讨论】:

    猜你喜欢
    • 2017-07-07
    • 2019-12-02
    • 2020-04-21
    • 1970-01-01
    • 2018-11-26
    • 2016-05-06
    • 2016-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多