Database Reference
In-Depth Information
their domain objects. This approach proved to be quite error-prone and took up a signific-
ant amount of time in the overall development of the application, with developers doing
thesamethingoverandoveragainforeachnewproject.Variousobject-relationalmapping
(ORM) frameworks, such as Hibernate ( http://hibernate.org/orm ), evolved to take some of
the pain out of this process and bridge the gap between translating between the physical
storage structure and the model in memory.
Neo4j's native graph-based storage structure naturally provides a better fit for storing and
retrieving complex object graphs than a relational database does. Relational databases of-
ten need to introduce additional structures, such as joining tables to deal with basic many-
to-many relationships; Neo4j handles this natively.Nevertheless, there still exists a need to
transform data from the persistence store into domain objects, and SDN seeks to play this
role for scenarios where the underlying persistence technology is the NoSQL graph data-
base Neo4j. In SDN's case, this involves mapping the native graph concepts of nodes and
relationships into your chosen POJO domain model classes.
What about OGMs for non-Java projects?
There are other non-Java OGM frameworks out there. A current listing of some of these
(interspersed among general Neo4j clients) can be found at http://neo4j.org/drivers . The
following list will give you a taste of what's available, but please consult the website for
the most up-to-date options:
neo4j.rb —A Ruby binding that includes an OGM-type implementation of the
RailsActiveModelandasubsetoftheActiveRecordAPI.See https://github.com/
andreasronge/neo4j .
Neo4j Grails plugin —A plugin that integrates the Neo4j graph database into
Grails, providing a GORM API for it. See http://grails.org/plugin/neo4j .
neo4django —An OGM for Django. See https://github.com/scholrly/neo4django .
neomodel —An OGM for Python. See https://github.com/robinedwards/neomod-
el .
Search WWH ::




Custom Search