Java 迁移到ORM

Java 迁移到ORM,java,hibernate,orm,migrate,Java,Hibernate,Orm,Migrate,逐步地,将Spring和Hibernate集成到不使用ORM的现有JSF应用程序中的好方法是什么?1)您需要首先设计域模型,然后将其映射到数据库。您可以使用hibernate反向工程工具进行此操作。 2) 另一个选项是手动将当前对象(DTO)映射到数据库表。由于您使用的是JSF,我假设您当前会有一些对象。 3) 围绕对象设计服务层 弹簧- 1) 您可以使用Spring提供hibernate模板,通过bean提供公共服务。 2) 您可以在Spring中管理事务。如果您正确编写了Spring,那么您

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

1)您需要首先设计域模型,然后将其映射到数据库。您可以使用hibernate反向工程工具进行此操作。
2) 另一个选项是手动将当前对象(DTO)映射到数据库表。由于您使用的是JSF,我假设您当前会有一些对象。
3) 围绕对象设计服务层

弹簧-
1) 您可以使用Spring提供hibernate模板,通过bean提供公共服务。

2) 您可以在Spring中管理事务。

如果您正确编写了Spring,那么您应该具有DAO/存储库接口。如果是这样的话,您所要做的就是使用Hibernate编写该接口的新实现,测试它,并更改Spring配置以注入它

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

  • 我建议首先编写测试来检查您以前的持久化机制的代码。此代码可用于检查ORM集成的正确行为
  • 正如其他答案所提到的,由接口定义清晰的DAO有助于绑定DAO代码
  • 首先映射域对象,然后编写DAO,然后编写服务对象(通过将其封装在事务中来处理大型原子操作套件)
  • 使用与供应商无关的持久性机制(JPA是好的也是唯一的选择)
  • 从一种数据库开始,并在整个迁移过程中坚持使用它。在非常罕见的情况下,您可能会遇到数据库之间的细微差异,这可能很难解决,特别是如果您是初学者的话
  • 启动时,使用数据库的自动生成(generateDdl用于hibernate子系统),然后,当事情开始稳定时,强制@Table和@Column注释修复每个列的名称。此时,编写一个SQL脚本,生成包含空表的数据库。如果要修复您的体系结构并确保您正在控制数据库组织,原因是

  • 如果你是认真对待ORM的,请看看Christian Bauer的Hibernate的Java持久化(Manning出版物),这是关于Java上Hibernate和JPA的《圣经》。

    目前,我假设没有持久性机制,应用程序只使用JDBC。但JDBC是一种持久性机制。根据wikipedia,你是对的。我是沿着对象持久化的思路思考的。对我来说,在进行疯狂的假设之前,询问更多关于现有项目的细节可能是一个好主意。从你所说的,调整现有的关系数据库似乎是一个非常头痛的问题。如果需求是从JDBC请求转到Hibernate,您会预见到什么样的问题?Hibernate需要一个对象模型和一个映射到每个表上都有主键的模式。如果模式规范化良好,效果最好。如果任何东西都不存在,你必须努力创造它们。“大头痛”?不应该太可怕。您正在编写Java,所以我想您已经有了一些对象。谢谢。在没有以前的持久性机制的情况下,我认为关系数据库和类模型之间需要进行一些调整。如果你遇到过关于这个主题的任何话题,我会非常感兴趣。问题更多的是“ORM如何能够灵活地适应我以前的数据库组织”。答案是:它很灵活,但是您可能需要使用一些在JPA中不直接可用的hibernate特性。再一次,我真的推荐鲍尔的书。要知道,当你选择JPA时,你很可能会使用Hibernate作为封面下的实现。