Oracle TopLink. Oracle TopLink is a mapping and persistence framework for Java developers. TopLink is produced by Oracle and is a part of Oracle's OracleAS, WebLogic, and OC4J servers. It is an object-persistence and object-transformation framework. TopLink provides development tools and run-time functionalities that ease the development process and help increase functionality. Persistent object-oriented data is stored in relational databases which helps build high-performance applications. Storing data in either XML (Extensible Markup Language) or relational databases is made possible by transforming it from object-oriented data.

A rich user-interface is possible on TopLink with the help of TopLink Mapping Workbench. This Mapping Workbench makes it possible to carry out the following with ease.
 Graphical mapping of an object model to data model.
 Generation of data model from its object model and vice versa.
 Auto-mapping of any existing data models and object models.
Oracle's JDeveloper IDE provides easy integration of these functionalities provided by the Mapping Workbench.

With the use of TopLink, users can stay more focused on their primary cause and let TopLink handle the integration of  persistence and object transformation into their application. Designing, implementing and deploying process is accelerated as TopLink supports a variety of data sources and formats such as Relational database, Object-relational database, Enterprise information system (EIS), XML and many others.

History 
Toplink was originally developed by The Object People in Smalltalk. It was ported to Java in 1996-1998 and called "TopLink for Java". In 2002, TopLink was acquired by Oracle Corporation and was developed under the Oracle Fusion Middleware product. The TopLink code was donated to the Eclipse Foundation and the EclipseLink project was born in 2007. The EclipseLink now provides the functionality of TopLink. Sun Microsystems selected EclipseLink in March 2008, as the implementation for the JPA 2.0, JSR 317 reference. A number of versions of TopLink have been released since and the latest version 12c (12.1.3) is available for free Download.

Key Features 
 Rapidly build high-performance enterprise applications that are scalable and maintainable.
 Extensive mapping support using relational, object-relational data type and XML.
 Advanced query capability including  native SQL, Java Persistence Query Language (JPQL) and EclipseLink Expressions framework.
 RESTful Services
 Just-in-time reading.
 Tenant Isolation
 NoSQL
 Various Optimistic and pessimistic locking policies and options.
 JSON
 Integration with commonly used application servers and databases.
 External Metadata Sources
 TopLink Grid.

Key Components

EclipseLink Core and API 
The runtime component of TopLink is provided by the EclipseLink Core. This API provides direct access to the runtime, which is embedded into the application. Persistence behavior is enabled by making application calls that invoke EclipseLink API to perform these functionalities which provides safe access to shared databases.

Import the following class to use extended functionality of EclipseLink.
import org.eclipse.persistence.*

Object-Relational(JPA 2.0) Component 
The binding of Java classes to XML schemas is possible with the help of Object-XML, which is an EclipseLink component. By implementing JAXB, mapping information is provided through annotations. It also provides manipulation of XML.

SDO Component 
The Service Data Objects (SDO) provides with the use of SDO API, use dynamic objects to customize and manipulate XML, use of static data objects and conversion of XML Schema.

Database Web Services Component 
Database Web Services (DBWS) facilitates access to relational databases with the help of web service. A database access can be made without the need to write a Java code. The XML SOAP Messages and the databases are connected by the runtime component of DBWS which uses EclipseLink.

TopLink Grid 
TopLink Grid is an integration mechanism that provides connection between Oracle Coherence and EclipseLink. An application generally interacts with the relational database, which is its primary database. But with TopLink the application can store data on the Coherence grid called as JPA on the grid.

TopLink Grid functionality can be used only if the user has license for Oracle Coherence. This functionality is provided by:
 toplink-grid.jar
To get support for TopLink Grid and EclipseLink, users also need to import the following package of classes.
 org.eclipse.coherence.*

TopLink Operations (Insert, Update, Delete) 
Database operations like Insert, Update and Delete can also be performed in TopLink. The changes made to the database are reflected in the Oracle Coherence cache. In Java Persistence API, an entity is a persistence class. Using TopLink, a number of performance features for writing large amounts of data can be implemented. Batch writing, stored procedure support, parameter binding, statement ordering and other features are offered to satisfy database constraints.

The basic operations are

Insert 
The EntityManager method persist(Object entity) is used to add an instance and marks it for insertion into the database.
entityManager.getTransaction().begin(); 
Employee newEmployee = new Employee(5); 
entityManager.persist(newEmployee); 
entityManager.getTransaction().commit();On completion of the transaction, the newEmployee data will be inserted into the database.

Update 
Updating an entity means simply reading the transaction and updating the properties of this entity. Updating the Employee LastName can be done as follows.
entityManager.getTransaction().begin(); 
Employee existingEmployee = entityManager.find(Employee.class, 5); 
existingEmployee.setLastName("NewLastName"); 
entityManager.getTransaction().commit();

Delete 
Deleting an entity is the opposite of Insertion and can be one using remove(Object entity) method of the EntityManager.entityManager.getTransaction().begin(); 
Employee existingEmployee = entityManager.find(Employee.class, 5); 
entityManager.remove(existingEmployee); 
entityManager.getTransaction().commit();The EntityManager method flush() deletes the entity on completion of the transaction.

Development Tools 
Users can use most of the tools in the market and use TopLink along with it. But the following toots provide special integration with TopLink.
 Oracle JDeveloper
 Oracle Enterprise Pack for Eclipse
 Eclipse
 NetBeans

Supported Database Platforms

See also 

 EclipseLink
 Hibernate (framework)
 Apache Cayenne
 IBATIS

References

External links 
Oracle TopLink Official Home
Oracle TopLink Quick Tour
Oracle TopLink Forum
Oracle TopLink Wiki
TopLink Essentials Home
TopLink Essentials Mailing List
Unofficial TopLink Wiki
Master the New Persistence Paradigm with JPA

Java platform
Object–relational mapping
Oracle software
Persistence frameworks
Oracle acquisitions