使用Apache OpenJPA开发EJB 3.0应用,第3部分: 实体继承 - 编程入门网
MARY KEY,NAME VARCHAR(255))
CREATE TABLE DOG(ID INTEGER NOT NULL PRIMARY KEY,SEX VARCHAR (255))
CREATE TABLE FISH(ID INTEGER NOT NULL PRIMARY KEY,TERRITORY VARCHAR(255))
[注] 使用 OpenJPA 中的 MappingTool 工具可以很容易的保持 Entity 和数 据库之间的一致性,也可以使用 MappingTool 工具生成的数据库定义文件(DDL )创建应用正常运行所需要的数据库结构。请参考 OpenJPA 的帮助文档中关于 MappingTool 部分的内容。 持久化实体 使用 OpenJPA 持久化实体的继承关系时,开发者只需要按照面向对象的思想 操纵实体即可,无需为实体的继承关系作多余的工作。下面的章节中我们将了解 持久化实体 Animal、Fish、Dog 时开发者需要完成的工作以及 OpenJPA 转化后 在关系数据库中的实现细节。 持久化 Animal 我们可以使用下面的代码段来持久化一个新的 Animal 对象:
当我们执行这段代码时,OpenJPA 会将它转化为关系数据库对应的 SQL 语句 :
[注] 如果您还不知道如何使用 OpenJPA 持久化对象,请阅读 本系列 前面的 文章,了解 OpenJPA 开发的基本知识。 使用Apache OpenJPA开发EJB 3.0应用,第3部分: 实体继承(7)时间:2011-08-31 IBM 肖菁持久化 Fish Fish 对象的持久化和 Animal 实体的持久化过程没有任何的不同,只不过 persist 方法的参数变成了 Fish 对象。我们可以使用下面的代码段来持久化一 个新的 Fish 对象,请注意下面代码中加粗的部分。
由于 Fish 对象的属性保存在两个表中,因此当我们执行这段代码时, OpenJPA 会将它转化为对应的两条 SQL 语句:
持久化 Dog 持久化 Dog 对象和持久化 Fish 对象的过程几乎一样,区别是 persist 方法 的参数变成了 Dog 对象。 em.persist(new Dog(3,"ba guai","MALE")); 和持久化 Fish 对象时一样,Dog 对象的属性也保存在两个表中,因此当我们 执行这段代码时,OpenJPA 会将它转化为对应的两条 SQL 语句:
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |