TopLink JPA: - 资源 - 教程 - 方法文档 - 示例 - 下载


常见问题解答

  

Oracle Application Server 徽标

TopLink Essentials JPA

常见问题解答

  2006 年 5 月 12 日

简介

本常见问题解答针对的是与 TopLink Essentials(EJB 3.0 Java Persistence API (JPA) 参考实现)有关的常见问题。这里提供了有关 Oracle TopLink(Oracle 针对对象关系、对象-XML 和 EIS 持久性的企业持久性解决方案)的常见问题解答。TopLink Essentials 包含在 Oracle TopLink 和 OracleAS 10.1.3.1 — 10.1.3.5 中。

  1. 什么是 EJB 3.0 Java Persistence API (JPA)?
  2. 什么是 TopLink Essentials?
  3. 有了 JPA,还需要 TopLink 吗?
  4. TopLink Essentials 采用何种许可方式?
  5. TopLink Essentials 支持哪些数据库?
  6. 除 JPA 规范定义的功能之外,TopLink Essentials 还提供哪些其他功能?
  7. 在哪里可以找到演示或示例?
  8. 是否有 TopLink Essentials 用户论坛?
  9. 哪种映射工具支持可用于 TopLink Essentials?
  10. TopLink Essentials 是否需要 JDK 1.5?
  11. 可以在 EJB 3.0 容器外部使用 TopLink Essentials 吗?
  12. 可以在任意 EJB 3.0 容器中使用 TopLink Essentials 吗?
  13. TopLink Essentials 与 Oracle TopLink 相比如何?
  14. 为什么要使用 TopLink Essentials 而不是 JBoss(tm) Hibernate?

  

  1. 什么是 EJB 3.0 Java Persistence API (JPA)?

    Enterprise JavaBeans (EJB) 3.0 规范包括一个名为 Java Persistence API (JPA) 的额外的持久性规范。它是一个用于创建、删除和查询轻型 Java 对象的 API,并可用于符合标准的 EJB 3.0 容器和标准的 Java SE 5 环境。

  2. 什么是 TopLink Essentials?

    TopLink Essentials 是 Oracle TopLink 产品的开源社区版。它源自 Oracle TopLink,提供了 EJB 3.0 中的 JPA 参考实现所必需的核心对象关系映射 (ORM) 功能。TopLink Essentials 可作为 GlassFish Open Source Java EE 5 Application Server 的实体持久性模块以源代码和二进制版本提供,也可以从这里单独下载。

  3. 有了 JPA,还需要 TopLink 吗?

    JPA 是 Java EE 和 SE 应用中持久性的规范。与所有规范一样,它们还需要供应商或开源项目来实现。TopLink Essentials 是首个符合规范的 JPA 实现,为 EJB 3.0 参考实现提供持久性功能。Oracle TopLink 是 Oracle 目前提供 JPA 预览功能的商业实现。二者都非常支持这个新标准,并提供了其他功能和性能优势。

  4. TopLink Essentials 采用何种许可方式?

    TopLink Essentials 依据 CDDL 免费发放许可和进行分发。“OSI 批准的 CDDL 许正在用于 GlassFish 项目,允许开发人员查看、使用、编辑和更改代码、分发或将其用于生产。”有关 GlassFish 中使用的 CDDL 许可的更多信息,请参见 GlassFish 常见问题解答,您还可从这里找到更多详细信息。

  5. TopLink Essentials 支持哪些数据库?

    TopLink Essentials 支持任何符合 JDBC 和 SQL 的数据库。它自带多种数据平台配置,可选择生成原生或非标准 SQL 操作。作为持续测试和认证工作的一部分,TopLink Essentials 还针对众多知名数据库进行了测试。

    这里提供了 Oracle TopLink 10.1.3 支持并通过认证的数据库平台。

  6. 除 JPA 规范定义的功能年之外,TopLink Essentials 还提供哪些其他功能?

    JPA 规范定义了大多数应用所需的核心对象关系功能。TopLink Essentials(作为持久性参考实现)全面符合所有强制性特性、众多可选特性以及某些附加特性。其他非强制性功能包括:

    • 自动发现 EJB 3.0 容器内部(必需)和外部的实体。
    • 其他 persistence.xml 供应商配置选项
      • 用于自定义连接管理而非数据源的 JDBC 配置选项(在容器外部必需)
      • 数据库平台指定所使用的数据库,允许原生 SQL 操作。还支持使用 JDBC 驱动程序元数据进行配置的 AUTO 模式。
      • 服务器平台,可以简化 Java EE 部署集成。还可以在非标准容器需要时自定义 JTA 事务控制器或服务器平台
      • 基于 java.util.logging 级别的日志记录
      • 缓存配置类型和大小,可以配置默认值和/或实体类型特定的值
      • 自定义和会话事件监听器类配置,允许在 TopLink 会话的基础上进行更详细的交互
      • 项目群描述文件加载后回调,用于附加的编程式配置
    • 其他查询提示
      • 缓存使用情况:配置查询检查缓存的方式,允许缓存命中或完全内存中查询,采用或不采用数据库 SQL 调用均可
      • 强制刷新缓存的实体
      • 级联查询属性(如刷新)
      • 悲观锁定

有关完整的详细信息,请参见 TopLink JPA 扩展指南

  1. 在哪里可以找到演示或示例?

    有关如何使用 TopLink Essentials 的示例和方法文档,可以通过 OTN 上的 TopLink Essentials 站点获得,也可以通过 GlassFish 实体持久性页面上发布的内容获得。

  2. 是否有 TopLink Essentials 用户论坛?

    OTN TopLink 论坛GlassFish 论坛

    GlassFish 中有一个持久性邮件列表 persistence@glassfish.dev.java.net。这个邮件列表的存档可在这里找到。

  3. 哪种映射工具支持可用于 TopLink Essentials?

    TopLink Essentials 或 GlassFish 中不直接提供映射工具支持。开发人员可以使用任何支持 JDK 1.5 或更高版本的开发环境,从而可以使用批注和 API 中使用的一些新特性。

    目前大多数知名的 IDE 都在努力提供更好的 JPA 使用支持。Oracle 率先在 JDeveloper 10.1.3 中支持 JPA,并且领导了作为 Web 工具平台 (WTP) 一部分的 Eclipse Dali JPA 工具项目

  4. TopLink Essentials 是否需要 JDK 5?

    需要,持久性 API 利用 Java 语言的新功能并使用批注,因此可以在实体类中直接映射配置。

    Oracle TopLink 10.1.3 提供了一个与规范类似的 JDK 1.4 持久性 API。对于希望准备顺利迁移到 JPA 但尚未能够在 JDK 5 环境中开发或部署应用的客户,这是一个很好的选择。它利用 TopLink 的现有元数据格式和图形映射编辑器,同时允许应用代码尽量减少耦合。

  5. 可以在 EJB 3.0 容器外部使用 TopLink Essentials 吗?

    可以,TopLink Essentials 支持在 EJB 3.0 容器内部或容器外部进行部署。这包括在 Web 容器、其他非 EJB 3.0 Java EE 容器内或 Java SE 中使用持久性 API。这样就能够在任何使用 Java 的地方使用持久性 API。

  6. 可以在任意 EJB 3.0 容器中使用 TopLink Essentials 吗?

    可以,通过可插拔持久性功能,TopLink Essentials 可以在符合标准的 EJB 3.0 容器中充当持久性提供程序。

  7. TopLink Essentials 与 Oracle TopLink 相比如何?

    TopLink Essentials 是 Oracle TopLink 中可用功能的一个子集。TopLink Essentials 的最初目标是提供商业质量的 JPA 参考实现。它们共享相同的核心对象关系映射功能,这些功能在十多年来一直是许多企业 Java 应用的重要基础架构。

    除 TopLink Essentials 和 JPA 规范之外,Oracle TopLink 还提供了一些其他功能。其中一些重要特性包括:

    • 高级 ORM 功能
      • 协调缓存以支持集群化的应用部署
      • 其他非侵入式乐观锁定策略
      • Oracle DB 特性
        • 虚拟专用数据库 (VPD)
        • XMLType 映射和 SQLX 查询生成
        • 提示
        • 层次结构查询
        • 对象关系映射数组、结构、对象引用和嵌套表
        • 自定义 LOB、TIMESTAMP* 和双字节数据类型
      • 与平台无关的存储过程和函数支持
      • 历史映射和时间点查询
      • 允许管理和监视 TopLink 会话及其缓存的 JMX MBean
    • 实现 JAXB 1.0 的对象-XML 映射并提供对 JAXB 2.0 功能的早期支持
    • 支持使用 JCA 资源适配器映射到 EIS

    虽然这些特性对于许多企业应用很有价值,但 TopLink Essentials 中提供的核心 ORM 功能是全面的,并不仅限于规范,还提供了有时需要的功能。使用 JPA 针对 TopLink Essentials 开发的应用只要其 JPA 实现被认证为符合标准,就可以在 Oracle TopLink 上运行。

  8. 为什么要使用 TopLink Essentials 而不是 JBoss (TM) Hibernate?

    TopLink Essentials 与 JBoss 的 Hibernate 产品一样,也是一个用于 Java 应用的开源对象关系持久性框架或层。虽然这两个产品都力求提供非侵入式、高度灵活、高性能的解决方案,还是存在一些主要差异。

    • TopLink Essentials 源自 Oracle TopLink,十多年来一直应用于大型部署、高事务量的生产 Java 应用。这种可靠性加上与客户密切合作逐步形成的特性集,让它成为一款性能卓越、可扩展的持久性解决方案,还提供了丰富的灵活性,允许配置映射和自定义运行时行为,支持多种数据库和应用部署。客户在域模型或关系模式方面无论具有何种复杂程度(比较著名的就是无法选择更改模式时),都将受益于 TopLink 的灵活性和成熟性。
    • TopLink 的缓存解决方案基于缓存映射实体,而不是将数据分解为原始结构。这种应用所需格式的存储在大多数使用场合都提供了巨大优势。此外,TopLink 缓存在配置和按实体类型控制方面还展示了极大的灵活性。
    • TopLink 社区是一个开放、友好的自由论坛,由经验丰富的开发和管理人员提供服务,他们从一开始就伴随着该产品一起成长。TopLink 背后的 Oracle 支持和服务技能娴熟、覆盖全球。
    • 作为 JPA 的参考实现,TopLink 提供了这个新标准的首个经过认证的实现,并提供了一些有用的增值功能。未来这一开源项目将基于 Oracle、Sun 及其他各方的贡献不断创新。
    • 使用 TopLink Essentials 将基于 JPA 标准为您提供丰富的 ORM 解决方案。它还可以让您无缝升级到 Oracle TopLink 产品,并受益于众多 ORM 高级功能
  

  

Left Curve
热门下载
Right Curve