| /* |
| * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved. |
| * |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Public License v. 2.0 which is available at |
| * http://www.eclipse.org/legal/epl-2.0, |
| * or the Eclipse Distribution License v. 1.0 which is available at |
| * http://www.eclipse.org/org/documents/edl-v10.php. |
| * |
| * SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause |
| */ |
| |
| // Contributors: |
| // Oracle - initial API and implementation |
| package org.eclipse.persistence.nosql.annotations; |
| |
| import static java.lang.annotation.ElementType.TYPE; |
| import static java.lang.annotation.RetentionPolicy.RUNTIME; |
| |
| import java.lang.annotation.Retention; |
| import java.lang.annotation.Target; |
| |
| /** |
| * An NoSQL (No SQL, or Not Only SQL) database is any non-relational data source.<br> |
| * This can include:<br> |
| * <ul> |
| * <li>NoSQL databases such as Oracle NoSQL, MongoDB, etc. |
| * <li>XML databases |
| * <li>Distributed cache stores such as Oracle Coherence |
| * <li>Object databases |
| * <li>Legacy databases, gateways and transaction system such as VSAM, ADA, CICS, IMS, MQSeries, Tuxedo, etc. |
| * <li>ERP systems, such as SAP |
| * </ul> |
| * <p> |
| * EclipseLink allows NoSQL data to be mapped to objects, and accessed through JPA and EclipseLink's APIs. |
| * <p> |
| * Entity and Embeddable objects can be used to map NoSQL data. |
| * Most NoSQL data is hierarchical in form so usage of embeddable objects is common. |
| * Some NoSQL adaptors support XML data, so NoSQL mapped objects can use XML mappings when |
| * mapping to XML. |
| * <p> |
| * EclipseLink support NoSQL data access through the JavaEE Connector Architecture. |
| * A JCA adaptor is required to map NoSQL data, this may be provided by EclipseLink, |
| * provided by a third party such as Attunity, or custom built. |
| * |
| * @see org.eclipse.persistence.eis.EISDescriptor |
| * @author James Sutherland |
| * @since EclipseLink 2.4 |
| */ |
| @Target({TYPE}) |
| @Retention(RUNTIME) |
| public @interface NoSql { |
| /** |
| * (Required) The database name of the database structure type. |
| */ |
| String dataType() default ""; |
| |
| /** |
| * (Optional) Defines the order of the fields contained in the database structure type. |
| */ |
| DataFormatType dataFormat() default DataFormatType.XML; |
| } |