2

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

4

3 回答 3

2

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

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

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

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

于 2010-02-19T10:55:38.283 回答
1

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

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

于 2010-02-19T10:44:37.433 回答