EclipseLink/UserGuide/JPA/Advanced JPA Development/NoSQL/About
|Mailing List • Forums • IRC • mattermost|
NoSQL is a classification of database systems that do not support the SQL standard. These include document databases, key-value stores, and various other non-standard databases (MongoDB, Cassandra, Google BigTable). EclipseLink supports persistence of Java objects to NoSQL databases through the Java Persistence API (JPA). EclipseLink's native API is also supported with NoSQL databases.
The NoSQL classification can also be expanded to include Enterprise Information Systems (EIS) including application databases, legacy databases, messaging systems, and transaction processing monitors (IMS, VSAM, ADABASE).
EclipseLink's NoSQL support includes:
- Oracle NoSQL
- XML files
- Oracle AQ
- NoSQL and EIS data-sources that have a JCA resource adapters that supports the JCA CCI interface
There are many different ways to access NoSQL and EIS data-sources. Many NoSQL data-sources provide a Java API. For EIS data-sources, there are many third party and custom Java adapters. These APIs are normally non-standard, and low-level, similar to JDBC. EclipseLink's NoSQL support is normally built on top of such APIs, and offers the rich, high-level and standard JPA API.
Some NoSQL data-sources support the JDBC API, and even a subset of the SQL language. Many third party vendors provide JDBC drivers for EIS data-sources. EclipseLink's regular JPA support can be used with any compliant JDBC driver. So, if JDBC access is an option, EclipseLink's NoSQL support is not required, as EclipseLink's standard JPA support can be used.
Some NoSQL data-sources may support the Java Connector Architecture. JCA is a Java Enterprise Edition API that allows connecting to a more generic systems than JDBC. JCA is composed of two parts, a resource adapter layer, and the Common Client Interface (CCI). EclipseLink's NoSQL and EIS support is based on the JCA CCI. For MongoDB, Oracle NoSQL, XML files, JMS, and Oracle AQ, EclipseLink provides the JCA adapter and EclipseLink EISPlatform and ConnectionSpec classes. Third party JCA adapters can also be used with EclipseLink as long as they support the CCI. They are third party JCA vendors such as Attunity that support various EIS data-sources such as IMS, VSAM and ADABASE.