使用RSA V7.5中的UML-to-JPA转换加速JPA开发 - 编程入门网
使用RSA V7.5中的UML-to-JPA转换加速JPA开发时间:2010-11-20 IBM 赵勇 黄若波 任静安本文介绍 Rational Software Architect(RSA)V7.5 中最新的 UML-to-JPA 转换,它允许使用者在 UML 对象模型上进行 JPA 配置和数据模型设计,并能快 速生成带 JPA 注解的 Java 类,可以将开发人员从频繁的重复工作中解放出来 。当在 O/R Mapping 开发过程中因需求变化而带来模型和代码的频繁变化时, 使用 RSA 的 UML-to-JPA 转换工具可以有效的降低项目迭代中的重复工作,同 时也有利于保证对象模型和数据模型的一致性,对于应用开发人员和设计人员都 有着重要的现实意义。 本文主要面向 Java 持久化开发和设计人员,假 定读者对 Java O/R Mapping 和 JPA 有基本的了解,您也可以参见参考资料以 了解更多 JPA 和 Java 持久化相关的知识。本文将主要介绍使用 JPA Transformation 开发 JPA 应用。 准备工作 JPA 简介 持 久化就一直是 Java 开发人员关心的话题,由于 EJB 的持久化过于重量级,产 生了很多的 Java 持久化框架,O/R Mapping 可以将我们从繁重的数据库存储和 对象序列化的工作中解放出来,并且使得开发人员可以灵活的应对需求的变化而 带来的数据库的变化和对象模型的变化,能够减少维持此他们之间的映射的代码 的变化。最新的 JPA 的规范更规定了 Java 持久化的标准 API 和配置方式,他 同时支持注解和配置文件。在实际的使用过程中,我们体会到 JPA 功能的强大 ,同时也感受到一定程度的不方便。使用映射配置文件时,每次数据库或者对象 模型的微小变化都需要重新修改配置文件,如果使用注解,虽然元素据和 Java 代码绑定,但是如果代码是由 UML 等模型转换过来,那么每次修改后重新转换 ,还需要重新增加 JPA 元素的注解。同时,注解是分散在每个 Java 类文件中 的,缺乏一种有效的集中管理机制,修改和维护也不是很方便。因此如果能够从 UML 模型直接转换成 JPA 的注解,我们就可以在模型层次上一致的来管理 JPA 的元数据,很大程度上减少了开发人员的工作量。本文将着重介绍在 RSA7.5 中 如何配置 JPA Transformation 的 profile 和 stereotype,将不详细介绍 JPA 注解本身以及 RSA 开发 JPA 的常规方法,读者如有需要,请参考相关资料。 JPA Transformation UML profile 简介 从 UML2.0 开始,UML 规范引入了一个非常重要的概念:UML profile (概要),它允许 UML 语言能 被适配到特定的领域,用户可以自由的实现客户化的 UML profile,并基于这些 UML profile 的扩展能力创建特定的领域模型。UML profile 为独立于领域的 UML 提供了简单的扩展机制,它能够支持定义领域特定的实体和规则。最新版的 RSA7.5 版本中就内置了一些帮助我们开发和建模的 UML profile,其中包括我 们本文使用到的 JPA Transformation profile。您可以参考“用于软件服 务的 UML 2.0 profile”一文以了解更多在 RSA 中使用 UML profile 的 用法。 profile 主要由 stereotype (构造型)组成,构造型定义哪个 UML 类 (元类)与其关联、该类上的属性以及有关构造型元素如何与其他元素关联的约 束。例如,在 RSA 中的 JPA Transformation profile 中,Entity 构造型扩展 Class UML 元类。它说明我们可以将一个 UML Class 声明为 JPA 这个领域内的 一个实体。同样对于 Entity 类中的属性,profile 规定了我们可以对其应用的 一些构造型如 ID,Column 等,通过对对象模型应用不同的构造型,并对这些构 造型设置相应的属性值,JPA Transformation profile 允许我们完整的表达 JPA 的语义。配合 JPA Transformation 功能,用户可以将经过定制后的类图可 以直接转化会带注解的 JPA Java 类,能够加速使用 JPA 作为持久层的开发过 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |