欢迎访问红帽

了解您身边的最新技术讯息

了解全世界红帽客户的最新动态:

EX297

红帽 Persistence 专业技能证书考试

您正在查看与下列主题相关的信息:

红帽 Persistence 专业技能证书考试, 旨在测试候选人是否具备在实际工作中使用带有 JBoss® Hibernate® 的 Java Persistence API (JPA) 完成创建和维护 Java 应用任务的能力。

红帽® Persistence 专业技能证书考试展示了个人通过 JBoss Hibernate 对使用 Java™ Persistence API (JPA) 的相关任务进行实际操作的能力。JPA 是一种用于管理相关数据的 Java 编程语言框架,Hibernate 是一种高性能的对象关系持久性和查询服务,用于实施 JPA。

请先熟悉红帽 JBoss 认证开发人员考试的工具、环境和要求。

准备

红帽建议考生在参加该项考试之前,先获得红帽认证 JBoss 开发人员 (RHCJD),但并非必要条件。

考查要点

为了帮助您准备考试,本文中列出的考试大纲重点突出了考试中可能出现的操作任务范围。红帽保留添加、更改和删除考试目标内容的权利。此类变更将在考前公布。

考试任务

在红帽 Persistence 专业技能证书考试中,考生必须使用 JPA 和 Hibernate 执行以下任务。为帮助您更好地学习,我们还准备了与这些操作相关的推荐参考文件列表。

配置 JPA/Hibernate
  • 配置 PersistenceUnit 属性,其中包括:
    • 配置文件位置
    • Java EE 特定的配置详细信息
    • Java SE 特定的配置详细信息
    • Hibernate 特定的配置详细信息
  • 从 Java SE 应用连接至 PersistenceUnit
  • 从 Java EE 应用连接至 PersistenceUnit
  • 覆盖 PersistenceUnit 默认属性值
映射单一表格或对象
  • 了解 id 生成器的行为,其中包括如何以及何时生成值
  • 了解如何映射主键,包括:
    • 使用生成的键
    • 映射简单的业务键
    • 映射复合键
  • 了解对象身份和业务等值
  • 配置数据库特定的信息,例如表格名称、列名称、列宽和
    列属性(可为空、唯一、类型等等)
  • 使用 JPA/Hibernate 将现有 Java 对象转换为持久性对象
  • 将基本 JPA 数据类型映射到对应的数据库类型
  • 根据现有数据库表格,创建新的持久性 Java 对象以映射该表格
  • 了解如何以及何时使用延迟加载和预先加载
  • 了解并使用用于集合和值类型的最优映射策略
  • 在持久对象中处理 Java/对象模型特定的属性和行为。其中包括:
    • 序列化
    • 瞬态属性
    • 已生成和已计算的属性
    • 不可变的属性
    • 值类型
    • 相互依存的属性(即属性的有效值取决于其他
      属性值)
使用 JPA/Hibernate 映射对象关系
  • 了解如何映射关系,包含但不限于:
    • 值关系(例如,有详细信息对象)
    • 父/子关系
    • 一对一关系(单向和双向)
    • 多对一和一对多关系(单向和双向)
    • 多对多关系(单向和双向)
  • 了解默认映射行为,包括但不限于:
    • 外键名称
    • 关联表格名称
  • 了解外键的使用并在创建关系时连接表
  • 了解如何根据关系映射复合主键
  • 了解 JPA/Hibernate 集合(集、映射列表和单位组),以及它们如何映射到对象和
    表关系
  • 了解不同集合的性能影响
  • 了解如何以及何时使用延迟加载和预先加载,包括两者的性能
    和代码影响
  • 根据现有表格和关系集合,创建与数据库匹配的
    持久性 Java 对象图
  • 将现有对象模型(包括多种组合)映射到持续性储存区
  • 确定给定业务流程的最优加载战略
使用 JPA/Hibernate 映射分层的对象关系
  • 了解如何使用 JPA/Hibernate 展示不同的对象层次结构
  • 使用 JPA/Hibernate 将现有 Java 对象层次结构转换为永久对象
  • 以对象层次结构展示现有表关系集合(例如,储蓄
    账户、信用卡和贷款账户)
  • 了解多态查询和关联
  • 了解不同继承策略的好处和限制
  • 分析并确定不同对象层次结构的最优数据库展示
了解事务行为 (ACID)
  • 获取和使用事务上下文:
    • Java EE/CMT
    • Java EE/BMT
    • 使用 JPA API 的 Java SE
  • 了解持久上下文如何绑定 Java EE 中的事务
  • 了解使用 EJB3 的事务上下文传播
  • 了解持久上下文级别的事务回滚结果
  • 了解事务的并发性风险
  • 评估数据丢失/损坏及性能平衡
检索持久对象
  • 了解 JPA/Hiibernate 加载策略:
    • 延迟加载
    • 子选择加载
    • 批处理加载
  • 了解并使用高级查询选项:
    • HQL/JPA QL
    • 条件 API
    • 本地查询 (SQL)
  • 使用运行时预先抓取属性
  • 使用命名参数
  • 预防和避免 LazyInitializationException
  • 分析并改进 JPA/Hibernate 性能
  • 了解并使用 JPA 乐观式锁定和 Hibernate 保守式锁定扩展功能
操纵持久对象
  • 了解实体状态,如:
    • 瞬态
    • 持久
    • 连接
    • 分离
    • 已移除
  • 了解如何使用 JPA API 更改实体/实体图状态
  • 了解持久性上下文的生命周期机器对所管理的实体的影响
  • 应用 JPA/Hibernate 批处理功能:
    • API 使用模式
    • DML 查询
  • 确定并应用最优实施和级联设置,以操作对象图
  • 评估何时使用批处理

您需要了解的内容

参考文件和培训

考试期间参考文件的访问仅限于官方的 JBoss 企业应用平台正在测试版本的参考文件和示例文件或其他包含产品的参考文件。我们不会删去正常包含的任何内容。

请注意,您将无法访问 jboss.org 或 hibernate.org 网站。这些网站为有用资源且包含与考试相关的内容,因此在考试期间其格式为不可访问形式。我们想要测试的人是您,而不是读取和更新 Wiki 的人。

不允许将任何复印件或电子文档带进考场。禁止携带的物品包括:笔记、书籍或任何其他材料。互联网访问受严格控制。复习时请牢记这些限制条件。

运行环境

考试时您会在红帽企业 Linux® 5.4 系统中操作,因此提前体验使用 Linux 或 UNIX 将很有帮助。然而,您无需具备丰富 Linux 经验,因为该考试的目的在于测试您的 JPA 与 Hibernate 技能,而非测试您的操作系统技能。您会在一个完整的桌面环境中进行操作,除了手册页面和其他有关红帽企业 Linux 的参考文件,我们还会提供一个基本命令列表供您参考。

Fedora 会为您提供可自由使用的替代方案以练习 Linux 技能。您可使用 Live CD 版本,基于此版本您可在 Fedora 中操作,而无需将其安装到计算机。虽然 Live CD 版本与红帽企业 Linux 环境不是十分匹配,它也足以让您熟悉相关系统要求。

模拟考试下载

请先熟悉红帽 JBoss 认证开发人员考试的工具、环境和要求。

下载概述文档
下载模拟考试

考试形式

红帽 Persistence 专业技能证书考试是 100% 基于实际问题解决能力的测试 — 考生通过执行任务,而非死记硬背来展示其所具备的知识和技能。多数 IT 认证考试要求回答一系列问题,您需要选择 A、B、C 或 D,或者选择所有正确的答案。您不会在红帽 Persistence 专业技能证书考试中看到这样问题。事实上,根本我们的考试中没有设计任何问题。取而代之,我们会为您提供一个执行一系列实际任务的真实环境。例如,我们可能要求您创建并维护一个持续性关联,而不会提出有关 JPA 映射注释的一系列问题。因此,建议考生对网上的所谓的“考试试题回忆”持怀疑态度。本文件为该项考试的唯一标准参考信息。

红帽 Persistence 专业技能证书考试时长为 4 个小时。考试开始前,我们将会安排一段时间来确认身份和收集信息。

考试环境

开发工具

除了桌面环境,我们还提供已安装且已配置好的 JBoss 开发人员工作室 3 (JBDS) 副本。考试并不是关于 JBDS 的考试,您不必了解或使用 JBDS 来完成考试任务。然而,JBDS 是开发和维护 JPA/Hibernate 应用的最佳工具,具备一些 JBDS 经验和技能对考试会有所帮助。如果您不能访问享有支持的 JBDS 副本,可以下载免费版本。如果您尚未注册红帽帐户,请先创建一个免费红帽帐户。如果您不想注册红帽帐户以下载免费版本,可使用带 JBoss Tools 4 插件的标准 Eclipse 配置,复习考试。

考试中用到的项目已经通过 Maven 创建。如果不想使用 JBDS,您可使用标准文本编辑器(如 gedit 或 vi)、命令行和 Maven。请注意,该考试为封闭环境且 Maven 在离线模式下运行。您无法使用未导入到本地环境中的任何 Maven 储存库和插件。

工作目录

当您开始考试时,默认的 JBDS 工作空间将包含 1 个或多个必须用于考试的项目目录。您不必使用 JBDS 进行开发,但必须使用默认的工作空间目录和已提供的全部任务的项目目录。再次重申:所有的代码和资源必须根据已提供的目录结构开发并与其保持一致。

编码标准

这是基于实际任务的上机操作考试,您必须通过编写代码的方式完成考试任务。不同公司的编码标准不同,和在实际环境中操作一样,希望您能遵守当地的编码标准。下面列出的是关于考试编码标准的一些信息,可以帮助您准备考试。考试期间我们也会提供此类信息。针对考试目标,最简单的方法是您想象自己是新雇用的 JPA/Hibernate 开发人员,被委派完成一个项目。遗憾的是,原来的开发人员已中途放弃项目且无法联系。您需要在先前开发人员结束的地方继续编码,并尽可能在有效时间内完成。

这些代码编写比较合理,其中含有许多 TODO 指示您应该执行的操作。然而请注意,Javadoc 和 TODO 并不能满足该测试任务需求。您需要阅读任务描述并注意在进行 TODO 操作前的有哪些具体要求。如果您认为在任务文本、UML/PDM 图表和 Javadoc/TODO 之间有冲突,请按照任务说明操作。

操作时请记住以下要点:

  • 编码格式不重要。您是否使用制表符或空格和如何放置大括号都不会影响评估您工作的方式。
  • 您可能使用 XML 文件、字段标注或属性标注映射类别;您使用什么都可以。现有代码使用少数字段级别的标注,但您可轻松更改为倾向的映射样式。
  • 许多分类的组织方式很不寻常那个,域和相关方法会被聚集在一起。这种方式非常特别,我们不推荐的采用这种操作方式。这样安排的目的是方便您只针对单个项目进行操作,不必根据域和相关方法来回搜索编码。如果您宁愿使用更为标准的编码结构,可随意排序类成员。提示:在 JBDS 中,编辑器窗口右侧蓝色 TODO 标记的 Blob 和大纲视图中的属性列表对快速导航这些类非常有帮助。
  • 与真实操作环境不同,注释和异常消息并不重要。该考试采用机器评分,因此可完全忽略注释和消息。
  • 代码质量和最佳操作方式很重要。您应始终采用最佳操作方式,并假设较差或低效的操作会被扣分。例如,有人认为 Java 最佳实践从不公示域成员,因此,您应根据对象属性一直使用标准 JavaBeans 的 getter 和 setter 方法。
  • 考试方案中的项目已设计到其他部门的其他应用中。除非任务说明或编码中的 TODO 明确指示,否则您不必更改现有方法的签名。这条规定中唯一例外的一点是:如果合适,您可以让签名更明确(也就是说可以使用子分类和/或特定类)。例如,只要运用合理,您应使用%2D%2D%3F%2D%2D%3E List 替换 Collection{cke_protected}{C}%3C!
  • 如果需要,您可以添加域、属性和方法。
  • 由于该项目专注于持久的实体,且您未输入控制器/服务层,您需要通过防御方式编码持久的实体。也就是说,您的实体方法应尝试防止业务逻辑破坏对象一致性。例如,如果传递 null 值,则非空属性的设置函数应抛出 NullPointerException。
  • 除另有注明外,否则所有实体必须使用持久性引擎自动生成的数据库主键。
  • 如果某个方法由于一些内部问题需要抛出异常,通常使用 RuntimeException;不要创建特定于业务的异常。例如,如果问题对于方法为无效参数,您可以使用 IllegalArgumentException。如果问题在对象模型或持久存储的状态下不一致,您可以使用 IllegalStateException。当然,如果合适,您可以一直使用 NullPointerException。除非明确告知这样做,否则请勿使用 JPA 传递持久性属性,以在对象图中将更改自动拓展到关联的实体。我们的经验表明,许多业务开发人员被此属性所迷惑,使用不当时,该属性会导致严重的性能和可靠性问题。最后警告:如果您的操作未编译或未正确运行,我们将无法进行评分。特别要指出的是,破坏的持久性关联会导致所有持久性操作失败。最好为较难的关联添加注释,而不是冒险干扰其他工作关联。测试项目包括 JUnit 测试,我们建议您在完成任务后运行整个测试套件。但是,请注意,其中包含的 JUnit 测试并非该测试,且代码通过测试也不意味着您的操作会取得满分。

考试成绩及公布方式

考试的官方成绩由红帽认证中心独家公布。红帽不授权考官或培训合作伙伴直接向考生公布考试结果。考试成绩通常会在 3 个美国工作日内公布。

公布的考试结果均为各个部分的得分。红帽不公布单个项目的成绩,也不会在咨询时提供额外信息。

培训对象和前提条件

红帽 Persistence 专业技能证书专门针对:

  • 经验丰富的 Java 应用开发人员和架构师。
  • 业务组件和数据库开发人员。

本考试的前提条件

  • 熟悉红帽企业 Linux 环境中的工作
  • 回顾红帽 Persistence 专业技能证书考试 (EX297) 目标