Java API - ODatabaseDocument

This class provides a unified Mulit-Model interface for managing and administering OrientDB Document and Graph databases.

Managing Databases

In previous versions of OrientDB, separate classes were used for Document and Graph databases. This is because OrientDB began as a Document database and added support for Graph databases later, based on the Apache TinkerPop 2.x standard. Beginning in version 3.0.x using this class, OrientDB provides a common interface for both database types. It can be found at com.orientechnologies.orient.core.db.document . For instance,

import com.orientechnologies.orient.core.db.document.ODatabaseDocument;

Once you've imported the class to your application, you can use one of the constructors to build a particular instance in your code.


In order to operate on an instance of this class, you need to create it on the OrientDB Server, then open it through an OrientDB() or OServer instance. For example, in your own application you might want to streamline the startup process, so that it creates a working database in the event that one isn't ready, then opens it.

private OrientDB orientdb;

public static ODatabaseDocument openDatabase(String name) {

   // Initialize Server Connection
   orientdb = new OrientDB("embedded:/tmp/", OrientDBConfig.defaultConfig());

   // Check if Database Exists
   if (!orientdb.exists(name)){
      orientdb.create(name, ODatabaseType.PLOCAL);

   return, "admin", "admin");


Here, the method uses the exists method to determine of the database exists, runs the create() if it doesn't, then uses open() with default credentials to open the ODatabaseDocument instance in your application.


Method Return Type Description
close() void Closes the database
command() OResultSet Executes idempotent or non-idempotent query
execute() OResultSet Executes a query
getMetadata() OMetadata Retrieves the database metadata
getName() String Retrieves the logical name of the database
getURL() String Retrieves the database URL
getUser() OSecurityUser Retrieves the current user
incrementalBackup() String Performs an incremental backup of the database to the given path
isActiveOnCurrentThread() boolean Checks whether the current database is active on the current thread
isClosed() boolean Checks whether the database is closed
live() OLiveQueryMonitor Subscribes query as a live query
load() <RET extends T> RET Loads a record by its Record ID
query() OResultSet Queries the database
registerListener() void Subscribes the given listener to database events
save() T Saves the given entity to the database
unregisterListener() void Unsubscribes the given listener from database events

Managing Classes and Clusters

Method Return Type Description
addCluster() int Adds a cluster to the database.
browseClass ORecordIteratorClass<ODocument> Retrieves all records of the given database class
browseCluster() <REC extends ORecord> ORecordIteratorCluster<REC> Retrieves all records of the given cluster
countClass() long Retrieves the number of records in the given database class
countClusterElements() long Counts all entities in the specified cluster.
createClass() OClass Creates a new database class
createClassIfNotExists() OClass Creates a new database class, if not exists
createEdgeClass() OClass Creates a database class as an extension of the E edge class
createVertexClass() OClass Creates a database class as an extension of the V vertex class
dropCluster() boolean Removes cluster from database
existsCluster() boolean Determines whether a cluster exists on the database
getClass() OClass Retrieves the given class from the database
getClusterIdByName() int Retrieves the Cluster ID for the given cluster name
getClusterNameById() String Retrieves the cluster name for the given ID
getClusters() int Returns the number of clusters on the database
getDefaultClusterId() int Returns the default Cluster ID
truncateCluster() void Removes all data from the given cluster

Managing Records

Method Return Type Description
delete() ODatabase<T> Removes a record from the database
getRecord() <RET extends ORecord> RET Retrieves a record from the database
getRecordType() byte Returns the default record type
newBlob() OBlob Creates a new instance of a binary blob containing the given bytes
newEdge() OEdge Creates a new edge between the given vertices
newElement() OElement Creates a new element (that is, a document, vertex or edge)
newInstance() RET Creates a new document, vertex or edge
newVertex() OVertex Creates a new vertex

Managing Transactions

Method Return Type Description
begin() ODatabase<T> Initiates a transaction
commit() ODatabase<T> Commits a transaction
getTransaction() OTransaction Retrieves the current transaction
rollback() ODatabase<T> Reverts changes

Managing Intents

Method Return Type Description
declareIntent() boolean Declares an intent for the database.
getActiveIntent() OIntent Returns the Intent active for the current session

results matching ""

    No results matching ""