快速业务通道

将遗留Hibernate应用程序迁移到OpenJPA和EJB 3.0(一) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
ent> </class>

OpenJPA 约定

在 OpenJPA 中,使用可嵌入对象的一对一关系按照以下方式进行映射:

在父实体中声明嵌入字段(例如 Employee)。将嵌入字段映射为父实体的数据库记录的一部分,并嵌 入父实体,而不是形成与子实体的关系。

将子实体(例如 EmployeeRecord)定义为可嵌入实体。

映射 9. 一对一关系和可嵌入对象(OpenJPA XML 映射)

<!-- Employee (parent) class --> <entity class="Employee"> <table name="T_EMPLOYEE"/> <attributes> <id name="employeeId"> <column name="EMP_TID"/> </id> <embedded name="employeeRec"/> ... </attributes> </entity> <!-- EmployeeRecord (child) class --> <embeddable class="EmployeeRecord"> ... </embeddable>

将遗留Hibernate应用程序迁移到OpenJPA和EJB 3.0(一)(15)

时间:2011-09-18 Donald Vines

b. 多对一关系

多对一关系定义到单个持久对象的引用。尽管多对一关系可以是单向的,但是经常将其定义为一对多 双向关系的反向过程。

声明多对一关系的实体是子对象(或关系的所有者),因为其表包含外键,而声明多对一关系的实体 引用的对象是父对象。由于其表不包含外键,所以它是非所有者或关系的反向。

对象模型

映射 10. 多对一关系 (POJO)

// Address (parent) class public class Address implements Serializable { private Long addressId; ... } // Phone (child) class public class Phone implements Serializable { private Address address; ... }

Hibernate 约定

在 Hibernate 中,多对一关系按照以下方式进行映射:

在子类中使用多对一元素。

在父类中定义主键。

映射 11. 多对一关系(Hibernate XML 映射)

<!-- Phone (child) class --> <class name="Phone" table="T_PHONE"> <many-to-one name="address" class="Address" column="ADDR_TID"> </many-to-one> ... </class> <!-- Address (parent) class --> <class name="Address" table="T_ADDRESS"> <id name="addressId" column="ADDR_TID"/> ... </class>

OpenJPA 约定

在 OpenJPA 中,多对一关系按照以下方式进行映射:

在父实体中定义主键 (id)。

在子实体中使用多对一元素定义关系,并使用嵌套连接列元素定义外键。连接列指定如何按照连接的 方法找到此子实体的父实体。

映射 12. 多对一关系(OpenJPA XML 映射)

<!-- Address (parent) class --> <entity class="Address"> <table name="T_ADDRESS"/> <attributes> <id name="addressId"> <column name="ADDR_TID"/> </id> ... </attributes> </entity> <!-- Phone (child) class --> <entity class="Child"> <table name="T_PHONE"/> <attributes> <many-to-one name="address"> <join-column name="ADDR_TID"/> </many-to-one> ... </attributes> </entity>

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号