For a friendly introduction to Spring Data Graph we’re hosting a free webinar with VMware and presented by Neo Technology’s CEO Emil Eifrem on April 20 at two convenient times for the Americas and Europe. [Update: Webinar video available on youtube.]
Now that Spring is in the air, the Neo4j and Spring Data teams are happy that almost a year’s worth of work has produced our 1.0 version of the Spring Data Graph library. The Spring Data project aims to bring the convenient programming model of the Spring Framework to NOSQL databases. Spring Data Graph supports graph databases within Spring Data and builds in support for Neo4j as its first supported implementation.
The best way of getting to know Spring Data Graph is by using it, so we’d like to encourage you to read our Spring Data Graph Guide Book, check out the examples and sources on github and tell us what you think.
Spring Data Graph provides simple and convenient access to graph databases from any Spring application. Originally, Spring Data Graph was the brainchild of SpringSource CEO Rod Johnson and Neo Technology CEO Emil Eifrem. Together Rod and Emil refined the design philosophy, and some foundation technologies like AspectJ (used to transparently map POJOs to an underlying graph).
Spring Data Graph debuted publicly at a presentation at JAOO Aarhus 2010, when Rod invited Michael Hunger of Neo Technology to demonstrate cross-store persistence as part of his SpringSource presentation. Later in October there were several sessions at the SpringOne conference that discussed different aspects of the Spring Data and Spring Data Graph projects.
Throughout the past year, we’ve taken regular feedback from our community and have responded with frequent iterative releases, each release improving and extending the scope and functionality of the library. In all, we’ve built support for detached entities, in-graph type representation strategies, repository support and a Neo4jTemplate implementation. We’ve also developed preliminary support for Spring Roo as an add-on.
Here is an overview of Spring Data Graph features:
- Support for property graphs (nodes connected via relationships, each with arbitrary properties)
- Transparent mapping of annotated POJO entities
- Neo4jTemplate with convenient API, exception translation and optional transaction management
- Different type representation strategies for keeping type information in the graph
- Dynamic type projections (duck typing)
- Spring Data Commons Repositories Support
- Cross-store support for partial JPA - Graph Entities
- Neo4j Traversal support on dynamic fields and via repository methods
- Neo4j Indexing support (including full-text and numeric range queries)
- Support for JSR-303 (Bean Validation)
- Support for the Neo4j Server
- Support for running as extensions in the Neo4j Server
Another highlight is the social movie database cineasts.net which is part of an extensive tutorial in building real-world systems with Spring and Spring Data Graph. The cineasts.net application runs on Spring Framework, Spring Data Graph and the Neo4j Graph Database, and uses movie data from the free and open themoviedb.org.
Our community has also been busy building productive and interesting systems atop Spring Data Graph. For example Spring Data Graph has been used for a large and sophisticated energy market simulation at the Technical University of Delft.
Spring Data Graph is released under the Apache Software License. Its source code is hosted on github. Several examples can also be found there. Issue tracker and forums are provided at springsource.org. You can follow @SpringData and @Neo4j on twitter and also subscribe to the Neo4j mailing list for more information.
Thanks to all the people that supported the development of Spring Data Graph with their experience, skills and time!