Oracle TopLink is a powerful and flexible Java persistence framework for storing Java objects in a data store, such as a relational database or a NoSQL database, and for converting Java objects to XML or JSON documents. TopLink provides APIs and a run-time environment for implementing the persistence layer of Java Platform, Standard Edition (Java SE platform), and Java Platform, Enterprise Edition (Java EE platform) applications.
TopLink's core functionality is provided by EclipseLink, the open source persistence framework from the Eclipse Foundation. EclipseLink implements Java Persistence API (JPA), Java Architecture for XML Binding (JAXB), and other standards-based persistence technologies, plus extensions to those standards. TopLink includes all of EclipseLink, plus additional features, including Oracle TopLink Grid, which integrates EclipseLink JPA with the Oracle Coherence cache..
For more information about the EclipseLink project, see "Eclipse Persistence Services Project (EclipseLink) home" at http://www.eclipse.org/eclipselink/
.
This guide, Solutions Guide for Oracle TopLink, documents a number of scenarios, or use cases, that illustrate TopLink features and typical TopLink development processes. These are not tutorials that lead you step-by-step through every task required to complete a project. Rather, they document general processes and key details for solving particular problems and then provide links to other documentation for more information.
"Oracle TopLink" and "TopLink" describe the full Oracle product, including all the included EclipseLink libraries, features, and APIs, plus the additional Oracle features. The names "Oracle TopLink" and "TopLink" are used in a general way in this documentation to refer to the whole product and at times more specifically to the Oracle-only features. The term "EclipseLink" is used when referring to the EclipseLink features included in TopLink.
To make good use of this guide, you should already be familiar with the following:
The concepts and programming practices of the Java SE platform and the Java EE platform. In the current release, TopLink supports Java EE 6. For more information, see the following.
Java
Java home page: http://www.oracle.com/us/technologies/java/index.html
Java EE 5 Tutorial: http://download.oracle.com/javaee/5/tutorial/doc/bnbpy.html
Java EE 6 Tutorial: http://download.oracle.com/javaee/6/tutorial/doc/bnbpy.html
Any of the thousands of books and websites devoted to Java.
Oracle Java EE Application Servers
Oracle WebLogic Server home page: http://www.oracle.com/technetwork/middleware/weblogic/overview/index.html
Oracle GlassFish Server home page: http://www.oracle.com/technetwork/middleware/glassfish/overview/index.html
Oracle Java EE Integrated Development Environments
Oracle JDeveloper: http://www.oracle.com/technetwork/developer-tools/jdev/overview/index.html
Oracle Enterprise Pack for Eclipse: http://www.oracle.com/technetwork/developer-tools/eclipse/overview/index.html
If you are working with EclipseLink JPA, you should be familiar with the concepts and programming practices of JPA 2.1, as specified in the Java Persistence API, Version 2.1 specification at http://jcp.org/en/jsr/detail?id=338
.
If you are working with EclipseLink JAXB, you should be familiar with the concepts and programming practices of JAXB 2.0, as specified in the The Java Architecture for XML Binding (JAXB) 2.0 specification at http://jcp.org/en/jsr/detail?id=222
.
If you are using JSON data-interchange format, you should be familiar with the concepts and programming practices of JSON, as described at http://www.json.org/
. For XML, see http://www.w3.org/XML/
If you are working with EclipseLink DBWS, you should be familiar with the concepts and programming practices of JAX-WS 2.0, as specified in the Java API for XML-Based Web Services (JAX-WS) 2.0 specification at http://jcp.org/en/jsr/detail?id=224
.
If you are working with REpresentational State Transfer (REST) service, you should be familiar with concepts and programming practices of REST, as specified in "JSR 311: JAX-RS: The Java API for RESTful Web Services" at http://jcp.org/en/jsr/detail?id=311
.
The use cases documented in this guide are as follows:
Chapter 2, "Installing Oracle TopLink" - How to download and install standalone TopLink.
Chapter 3, "Using TopLink with WebLogic Server" - How to use TopLink with WebLogic Server.
Chapter 4, "Using TopLink with GlassFish Server" - How to use TopLink with GlassFish Server.
Chapter 5, "Using TopLink with JBoss 7 Application Server" - How to use TopLink with JBoss 7 Application Server.
Chapter 6, "Using TopLink with IBM WebSphere Application Server" - How to use TopLink with IBM WebSphere Application Server.
Chapter 7, "Migrating from Native TopLink" - How to how to migrate applications using native TopLink object-relational mapping (ORM) API to the current EclipseLink API.
Section 8, "Migrating from Hibernate to TopLink" - How to migrate applications from using Hibernate JPA to using EclipseLink JPA.
Chapter 9, "Using Multiple Databases with a Composite Persistence Unit" - How to expose multiple persistence units (each with unique sets of entity types) as a single persistence context.
Chapter 10, "Scaling Applications in Clusters" - How to configure EclipseLink applications to ensure scalability in clustered application server environments.
Chapter 11, "Providing Software as a Service" - Overview of TopLink Software as a Service (SaaS) features..
Chapter 12, "Making JPA Entities and JAXB Beans Extensible" - How to make JPA entities or JAXB beans extensible.
Chapter 13, "Using an External MetaData Source" - How to use an external metadata source.
Chapter 14, "Tenant Isolation Using TopLink" - How to support multiple application tenants who share data sources, including tables and schemas.
Chapter 15, "Mapping JPA to XML" - How to map JPA entities to XML using EclipseLink JAXB.
Chapter 17, "Testing JPA Outside a Container" - How to test your EclipseLink JPA application outside the container.
Chapter 18, "Enhancing Performance" - Getting the best performance out of TopLink.
Chapter 20, "Exposing JPA Entities Through RESTful Data Services" - How to expose entities through RESTful services using EclipseLink Java Persistence API for RESTful Services (JPA-RS).
Chapter 19, "Scaling JPA Applications Using TopLink Grid with Oracle Coherence" - How to use TopLink Grid to achieve high availability and increase performance.
Chapter 22, "Using Database Events to Invalidate the Cache" - How to use EclipseLink Database Change Notification (DCN) for caching with a shared database in JPA.
Chapter 23, "Using TopLink with NoSQL Databases" - How to use EclipseLink to map objects to non-relational (that is, no SQL) data sources.