将遗留Hibernate应用程序迁移到OpenJPA和EJB 3.0(一) - 编程入门网
) ,则您仍应能够基于本部分中的信息得出更改,并将应用程序迁移到 OpenJPA。另一方面,如果希望将 Java 5 注释与 OpenJPA 一起使用,附录提供了这样的示例。
还可以使用其他方法在 Java 对象和关系表之间进行映射。本部分将介绍在企业应用程序中出现的通 用场景,其中包括: 继承 关系 延迟初始化 对象标识 乐观锁定 1. 继承 企业应用程序的数据模型通常有多个位置,类之间的一般化/专业化在这里提供重要的重用机会。 Hibernate 和 OpenJPA 都支持可以在关系表中建模继承的三种不同方法。我们将讨论其中的两项,我们 认为这两项是最常见的场景: 单个表继承 连接继承 第三项(每个具体的类一个表)由 Hibernate 提供,但通常很少用,它是 JPA 持久性提供程序(如 OpenJPA)的可选实现。 a. 单个表继承 对于 Java 基础类包含其所有子类的大多数属性的情况,可以使用单个表映射继承,该表中的一列值 标识特定的子类,行所表示的实例属于此类。如果没有任何列映射到特定的子类,则这些列必须声明为可 以为空,因为它们在该子类的数据库行中将为空。 此继承策略的缺点是如果子类为该实例定义多个非空属性,则非空约束的丢失会带来数据完整性问题 。此方法的主要优点是,它为类层次范围的实体和查询之间的多态关系提供最佳支持,因为不存在复杂的 连接。 将遗留Hibernate应用程序迁移到OpenJPA和EJB 3.0(一)(11)时间:2011-09-18 Donald Vines对象模型 映射 1. 单个表继承 (POJO)
Hibernate 约定 在 Hibernate 中,单个表继承按照以下方式进行映射: 在基础类中,将类与映射到表的辨别器列一起使用;还要为主键和其他属性定义映射(稍后进行介绍 ,不在示例中显示)。 将子类与子类中独特的辨别器值一起使用;还要为子类独有的属性定义映射。您不能在子类中定义 ID 元素;它们没有自已的表,因此使用(基础)类的 ID。 映射 2. 单个表继承(Hibernate XML 映射)
OpenJPA 约定 在 OpenJPA 中,单个表继承按照以下方式进行映射: 在基础类中使用 SINGLE_TABLE 继承策略和辨别器列;还要定义基础类的持久属性及其唯一的 ID。 使用子类中的辨别器值表示其实例;还要定义子类的持久属性,而不是 ID。子类不会有任何表;它们 的属性将提升到表示基础类的表。 映射 3. 单个表继承(OpenJPA XML 映射)
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |