ObjectDB


ObjectDB is an object database for Java. It can be used in client-server mode and in embedded mode.
Unlike other object databases, ObjectDB does not provide its own proprietary API. Accordingly, working with ObjectDB requires using one of the two standard Java APIs: JPA or JDO. Both APIs are built-in in ObjectDB, so an intermediate ORM software is not needed.

Features

ObjectDB is a cross platform software and can be used on various operating systems with Java SE 5 or higher. It can be integrated into Java EE and Spring web applications and deployed on servlet containers as well as on Java EE application servers. It was tested on various JVMs, including HotSpot, JRockit and IBM J9.
The maximum database size is 128 TB. The number of objects in a database is unlimited.
All the persistable types of JPA and JDO are supported by ObjectDB, including user defined entity classes, user defined embeddable classes, standard Java collections, basic data types and any other serializable classes.
Every object in the database has a unique ID. ObjectDB supports both traditional object database IDs, as well as RDBMS like primary keys, including composite primary keys and auto value generation and assignment, as part of its support of JPA, which is mainly an API for RDBMS.
Two query languages are supported. The JDO Query Language, which is based on Java syntax, and the JPA Query Language, which is based on SQL syntax. JPA 2 criteria queries are also supported.
ObjectDB automatic schema evolution handles most changes to classes transparently, including adding and removing of persistent fields, changing types of persistent fields, and modifying class hierarchy. Renaming persistable classes and persistent fields is also supported.

Tools and utilities

The following tools and utilities are included in the ObjectDB distribution: