Neodatis Datastores

NeoDatis is an object-oriented database for Java and .Net. It is simple and fast and supports various query mechanisms.

DataNucleus supports persisting objects to Neodatis datastores (using the datanucleus-neodatis plugin). Support for Neodatis is in its early stages. If you wish to help out in this effort either by contributing or by sponsoring particular functionality please contact us via the DataNucleus Forum.

Datastore Connection

DataNucleus supports 2 modes of operation of neodatis - file-based, and client-server based. In order to do so and to fit in with the JDO/JPA APIs we have defined the following means of connection.

The following persistence properties will connect to a file-based Neodatis running on your local machine

datanucleus.ConnectionURL=neodatis:file:{my_neodatis_file}
datanucleus.ConnectionUserName=
datanucleus.ConnectionPassword=

The filename (my_neodatis_file) can be absolute OR relative.

The following persistence properties will connect to embedded-server-based NeoDatis running with a local file

datanucleus.ConnectionURL=neodatis:server:{my_neodatis_file}
datanucleus.ConnectionUserName=
datanucleus.ConnectionPassword=

The filename (my_neodatis_file) can be absolute OR relative.

The following persistence properties will connect as a client to a TCP/IP NeoDatis Server

datanucleus.ConnectionURL=neodatis:{neodatis_host}:{neodatis_port}/{identifier}
datanucleus.ConnectionUserName=
datanucleus.ConnectionPassword=

Neodatis doesn't itself use such URLs so it was necessary to define this DataNucleus-specific way of addressing Neodatis.



Known Limitations

The following are known limitations of the current implementation

  • NeoDatis doesn't have the concept of an "unloaded" field and so when you request an object from the datastore it comes with its graph of objects. Consequently there is no "lazy loading" and the consequent impact that can have on memory utilisation.
  • JDOQL for NeoDatis does not support the full range of methods (e.g Collection/Map contains)
  • NeoDatis doesn't currently allow access to the version of objects hence optimistic checking of versions is not currently supported