使用RSA V7.5中的UML-to-JPA转换加速JPA开发 - 编程入门网
程,并使对象模型和持久化模型保持一致。
示例使用的 UML 模型 本文将采用图 1 中描述的对象模型为例来说明 如何应用 RSA 中的 UML-to-JPA 转换功能来加速 JPA 的开发。 图 1. 示例用对象模型 使用RSA V7.5中的UML-to-JPA转换加速JPA开发(2)时间:2010-11-20 IBM 赵勇 黄若波 任静安这个简单的对象模型,主要用于描述超市的购物小票,其中 Invoice 表示小 票对象,Customer 表示会员客户,每个小票可以关联到 1 个客户,如果有客户 则表示会员(对应客户持有超市会员卡),或者没有客户。小票上打印的 InvoiceItem 可以是一般商品,商品折扣,或者会员积分。 以上模型完 全为了本文说明问题而虚构的。假定现在需要实现以上模型的持久化,这符合 JPA 开发的正向映射的场景,是一个典型的自顶向下的开发模式。以持久化对象 的模型作为开发的起点,经过配置和 JPA 的转换,生成带注解的 JPA 实体类, 使用 JPA 配子文件和 API 完成实体持久化功能。如果使用如 Apcahe OpenJAP 这样的工具,开发过程如下:由 UML 对象模型转化生成 Java 类,给这些 Java 类写配置文件或者增加注解,在使用工具根据配置生成数据库,然后就可以使用 JPA 的 API 在运行时操作持久化对象。这个是典型的正向映射,如果模型是确 定的,上述开发过程会比较顺利,只需要进行一次,也没有重复的劳动,也不会 产生模型的不一致。但是,在现实的开发过程中,对象模型和数据库总是处于变 化之中,在迭代的开发过程中,一旦需求发生变化,模型要变化,重新转化为 Java,然后配置文件或者注解要跟着变化,重新生成数据库,并且要保持模型和 Java 以及配置的一致性。如果您曾经从事类似的开发,就会深切的了解到这种 重复的工作会给开发人员带来多大的负担。 IBM 最新的 RSA7.5 版本, 为开发人员提供了一种先进的模型驱动开发的体验,通过 JPA Transformation profile 提供了可以扩展 UML 对象模型成为 JPA 配置模型的能力,允许开发人 员和建模人员在 UML 类图级别进行 JPA 的配置,保证了对象模型和持久化配置 的一致性,并通过自动化的转换可以直接快速的实现 JPA 的开发。您可以在下 载资料中下载该模型的项目交换文件(SampleModel.zip),导入到 RSA7.5 的 工作区中,按照本文的步骤尝试使用 JPA Transformation 的旅程。本文还提供 了一个 JUNIT 测试用例来测试 JPA 的持久化 API。 为 UML 模型应用 JPA Transformation profile 在这一小节,您将了解到如何为 UML 对象 模型配置的 JPA Transformation profile,限于篇幅,本文仅讨论一些常见的 JPA 注解如何在模型上使用 stereotype 配置,更多复杂的设置请参考相关文档 。 为模型添加 profile 支持 为了使用 JPA Transformation 的 profile,我们需要首先为模型应用该 profile。您可以在 RSA 的项目浏览器中 选中模型文件的 package,在右键菜单中的选择 UML Properties,打开 UML Properties 对话框来为模型添加 JPA Transformation 的 profile。在打开的 “UML Properties”对话框中,点击右上角的图形按钮,如图 2,在 弹出的“Select profile”对话框中选择 JPA Transformation,点 击OK就使得该模型可以支持 JPA Transformation profile 的扩展了。 图 2. 为模型添加 JPA Transformation profile 支持 配置 Entity 和 ID 一旦为模型添加了 JPA Transformation profile 支持,开发人员就可以在 UML 类图上定制 JPA 的属性。首先我们使用 JPA 中最重要的配置元素:Entity。如图 3,选中一个 UML Class,在 Properties 页面中选择 stereotypes 标签页,然后点击“Apply stereotypes” 按钮,在弹出的对话框中选择 Entity。这样就能为该 Class 扩展了 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |