【问题标题】:Migrating to ORM迁移到 ORM
【发布时间】:2011-01-18 17:35:51
【问题描述】:

逐步地,将 Spring 和 Hibernate 集成到不使用 ORM 的现有 JSF 应用程序中的好方法是什么?

【问题讨论】:

    标签: java hibernate orm migrate


    【解决方案1】:

    1) 您需要先设计领域模型,然后将其映射到数据库。您可以为此使用休眠逆向工程工具。
    2)其他选项是手动将您当前的对象(DTO)映射到数据库表。由于您使用 JSF,我假设您目前有一些对象。
    3)围绕对象设计服务层。

    春天 -
    1)可以使用Spring提供hibernate模板,通过bean提供常用服务。
    2)您可以在Spring中管理事务。

    【讨论】:

    • 目前,我假设没有持久化机制并且应用程序仅使用 JDBC。
    • 但是 JDBC 是一种持久化机制。
    • 根据维基百科,你是对的。我在考虑对象持久性。在进行疯狂的假设之前,询问有关现有项目的更多详细信息对我来说可能是个好主意。
    【解决方案2】:
    1. 我建议首先编写测试来检查您之前的持久性机制的代码。此代码可用于检查我们的 ORM 集成的正确行为。
    2. 正如其他答案所提到的,具有由接口定义的清晰 DAO 有助于绑定 DAO 代码。
    3. 首先映射域对象,然后编写 DAO,然后编写服务对象(通过将其包含在事务中来处理大型原子操作套件)。
    4. 使用与供应商无关的持久性机制(JPA 是好的且唯一的选择)。
    5. 从一种数据库开始,并在所有迁移过程中坚持使用它。在非常罕见的情况下,您可能会遇到数据库之间可能很难解决的细微差异,尤其是如果您是初学者。
    6. 启动时,使用自动生成数据库(generateDdl 用于休眠子系统),然后,当事情开始稳定时,强制@Table 和@Column 注释固定每列的名称。此时,编写一个 SQL 脚本来生成带有空表的数据库。修复架构并确保控制数据库组织的原因。

    如果您对 ORM 很认真,请查看 Christian Bauer 的 Java Persistence With Hibernate(Manning 出版物),这是关于 Java 上的 hibernate 和 JPA 的“圣经”。

    【讨论】:

    • 谢谢。在以前没有持久性机制的情况下,我想在关系数据库和类模型之间需要进行一些调整。如果您遇到任何有关该主题的主题,我会非常感兴趣。
    • 问题更多的是“ORM 如何灵活地适应我以前的数据库组织”。答案是:它很灵活,但您可能需要使用 JPA 中不直接提供的一些休眠功能。再一次,我真的推荐鲍尔的书。
    • 请理解,当您选择 JPA 时,您可能会使用 Hibernate 作为幕后实现。
    【解决方案3】:

    如果你正确地编写了 Spring,你应该有 DAO/repository 接口。如果是这种情况,您所要做的就是使用 Hibernate 编写该接口的新实现,对其进行测试,然后更改您的 Spring 配置以注入它。

    ORM 假定您有一个对象模型可以映射到关系模式。如果你不这样做,我建议不要使用 ORM。在这种情况下最好使用 iBatis 或 JDBC。

    【讨论】:

    • 从您所说的情况来看,适应现有的关系数据库可能会非常令人头疼。如果需求是从 JDBC 请求到 Hibernate,你预见到什么样的问题?
    • Hibernate 需要一个对象模型和一个到在每个表上都有主键的模式的映射。如果模式正常化,效果最好。如果任何东西不存在,您将不得不努力创建它们。 “头疼”?应该不会太惨。你正在编写 Java,所以我想你有一些对象。
    猜你喜欢
    • 2011-02-21
    • 1970-01-01
    • 2014-07-25
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 2015-08-22
    • 1970-01-01
    • 2022-10-21
    相关资源
    最近更新 更多