简介

Oracle TopLink 11g R1 (11.1.1.1.0) 在纳入 EclipseLink 项目以及在 TopLink 网格功能中改进了 Oracle Coherence 集成的基础上,提供了一组重要的新功能。

本文将在以下几方面对 11g 中的 Oracle TopLink 功能进行说明:


  • EclipseLink
  • WebLogic Integration
  • TopLink 网格

该版本以 Oracle TopLink 11g (11.1.1.0.0) 提供的功能为基础。


EclipseLink

Oracle TopLink 11gR1 升级了其核心的持久性功能(包括 EclipseLink 1.1.1),其中包括以下功能和增强:



  • JPA 增强
  • 服务数据对象 (SDO)
  • 数据库 Web 服务 (DBWS)
  • 向后兼容性


JPA 增强

将 Oracle TopLink 的 JPA 从 EclipseLink 1.0.2 升级到 1.1.1 后,会提供一些微小的增强和新功能,其中包括:



  • 单向一对多映射消除了集合中所包含实体的向后引用需求。同时,也不再需要建立联接表来维护联接信息。
  • TABLE_PER_CLASS 继承是 JPA 1.0 规范中的一个可选功能,它可将层次结构中的每个具体子类映射到一个单独的表;并且在类之间没有共享的通用表。所有通用字段都会在每个表中重复出现。该策略对于特定子类的查询很有效,但是整体执行效果不好。


服务数据对象

该版本包括支持 SDO 2.1.0 和 2.1.1 应用程序的 EclipseLink 1.1.1 服务数据对象 (SDO) 实现。EclipseLink SDO 是 JSR 235 中定义的 SDO 2.1.1 的引用实现。在 Oracle WebLogic Server 中,用户可以使用现成的 SDO 2.1.0。

通过实现 EclipseLink SDO,Java 开发人员可以高效地构建和使用可以并入服务体系结构的数据对象模型。它支持动态和静态的 SDO(通过模式编译器)应用程序开发。此外,EclipseLink SDO 还支持将 SDO 与 JPA 持久地保留在关系数据库中。可以通过 JPQL 在数据库中查询数据对象,并在网络上对这些对象进行编组、修改然后返回到服务器,然后将更改应用到数据库。EclipseLink SDO 和 JPA 为需要关系存储的 SCA 应用程序提供了一个集成解决方案。

数据库 Web 服务

该版本包含的第一版 EclipseLink DBWS 允许开发人员构建 JAX-WS Web 服务,以提供对关系数据库数据、存储过程和 Oracle PL\SQL 的访问。DBWS Web 服务可以通过关系元数据或 SQL 语句直接生成。DBWS 可以利用 EclipseLink 的高级对象关系 (O/R) 映射和对象-XML (O/X) 绑定功能来提供 XML-关系 (X/R) 数据访问。还可以自定义 DBWS 生成的 Web 服务,以满足特定的应用程序需求。

向后兼容性

该版本将继续保留 oracle.toplink.* 程序包中打包的原始 TopLink、OC4J 集成和映射工作台。这将允许现有客户继续使用原先的 TopLink,而不必升级到 11gR1。这些库包括:



  • /jlib/toplink.jar
  • /jlib/toplink-oc4j.jar
  • /jlib/toplink-src.zip
  • /utils/workbench/*

该主要版本及其相关补丁集仍将继续保留这些库和功能。但是,我们还是建议客户升级到 EclipseLink 库,并迁移到 org.eclipse.persistence.* 程序包中的软件,以便利用未来的改进功能和新功能。


WebLogic Integration

在这个 11gR1 Oracle WebLogic Server 和套件的联合版本中,客户会发现 Oracle TopLink 11gR1 作为预打包的模块包含在容器中。随着 TopLink 成为 Oracle 的持久性策略方针,客户现在就可以轻松地使用 EclipseLink JPA、MOXy、SDO 和 DBWS 将其应用程序部署到 WebLogic 容器中,而无需安装任何额外的库。同时,使用原始 TopLink 程序包 (oracle.toplink.*) 的客户还会发现它们仍然可以用在同一模块中。

WebLogic 中的 JPA

为了使用 TopLink 提供的 EclipseLink JPA 实施,开发人员只需在应用程序的 persistence.xml 文件中指定 EclipseLink 作为 JPA 提供程序即可。

<provider>org.eclipse.persistence.jpa.PeristenceProvider</provider>

从 TopLink Essentials 迁移来的客户将发现,EclipseLink JPA 实施提供的功能与之前的功能基本相同(甚至更多)。迁移只是很小的一个过程,只需切换 toplink.* 持久性单元属性和查询提示名称即可。



TopLink 网格

该版本还包括 TopLink 网格的第二版。TopLink 网格为 EclipseLink JPA 和 Oracle Coherence 产品提供了创新性的集成,该集成支持一系列配置,从使用 Coherence 作为分布式 L2 实体缓存到使用 Coherence 作为主数据源。作为 L2 缓存,Coherence 支持通过聚集所有集群成员堆栈来缓存大量实体。作为数据源,TopLink 网格会将所有读、写、更新和查询操作交由 Coherence 执行。该配置通过异步数据库后写入来支持高可用性和响应能力强的 JPA 应用程序。

TopLink 网格的 11gR1 版还引入了持久性关系支持。现在,具有急性或惰性关系的实体都可以存储在 Coherence 中。新增该功能后,大多数 JPA 应用程序都可以轻松地利用 Coherence 的强大功能。

有关详细信息,请参阅 OTN 上的 TopLink 网格页面。