快速业务通道

使用Apache OpenJPA开发EJB 3.0应用,第3部分: 实体继承 - 编程入门网

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

当我们执行这段代码时,OpenJPA 会将它转化为关系数据库对应的 SQL 查询 语句:

SELECT t1.id, t0.id, t1.name, t0.territory FROM Fish t0 INNER JOIN Animal t1 ON t0.id = t1.id

在查询结果返回后,OpenJPA 会将查询结果影射到相关的Fish对象上,整个过 程是透明的,开发者只需要处理对象模型即可。

获取所有 Dog 对象

获取 Dog 对象的过程和获取 Fish 对象的过程一致,开发者只需要将 Query 接口使用的 JPQL 语句改为“select dog from Dog dog”。

Query q1 = em2.createQuery("select dog from Dog dog ");

当我们执行这段代码时,OpenJPA 会将它转化为关系数据库对应的 SQL 查询 语句:

SELECT t1.id, t0.id, t1.name, t0.sex FROM Dog t0 INNER JOIN Animal t1 ON t0.id = t1.id

在查询结果返回后,OpenJPA 会将查询结果影射到相关的Fish对象上,整个过 程是透明的,开发者只需要处理对象模型即可。

总结

对象继承关系在关系数据库中的表现是对象持久化中难于实现的部分, OpenJPA 为开发者提供了一种透明的实现。在 OpenJPA 中提供了 SINGLE_TABLE 、JOINED 和 TABLE_PER_CLASS 三种实现方式处理实体继承关系,开发者需要做 的仅仅是为实体类提供 javax.persistence.Inheritance 注释,同时设置它的 strategy 属性,确定使用哪种对象继承关系即可,和关系数据库交互的部分由 OpenJPA 框架完成。

在下一期文章中,让我们来了解如何使用 OpenJPA 处理实体之间的关联关系 ,如一对一、一对多、多对一、多对多关系,我们将介绍相关的注释,并学习如 何在代码中使用它,敬请期待!

原文: http://www.ibm.com/developerworks/cn/java/j-lo-openjpa3/

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号