Archive for the ‘Spring Data’ Category

Connecting to Neo4j using Spring Data

Wednesday, January 30th, 2013

Connecting to Neo4j using Spring Data by Anirvan Chakraborty.

Description:

Anirvan’s Progressive Java track will show how to use Spring Data Neo4j to build a Spring-based web application based on the graph database Neo4j. The session will begin with a short introduction into Spring Data Neo4j and follow that up by building a ‘User Management System’ using Neo4j. Anirvan will show just how easy it is to use Spring Data Neo4j to map entity classes to the Neo4j DB. The tutorial expects the attendees to have no previous knowledge of Neo4j or Spring Data Neo4j, but some experience of building web applications using Spring Framework would be helpful.

A bit dated now but possibly still useful introduction to Neo4j and Spring Data.

Spring Data: Modern Data Access for Enterprise Java

Monday, July 16th, 2012

Spring Data: Modern Data Access for Enterprise Java by Mark Pollack, Oliver Gierke, Thomas Risberg, Jon Brisbin, and Michael Hunger.

An Open Feedback Publishing System title from O’Reilly.

I encountered it because of an automated search for Neo4j materials discovered: Spring Data Neo4j.

I would bookmark the Spring Data website.

Neo4j Spring Data & Scala

Sunday, April 1st, 2012

Neo4j Spring Data & Scala by Jan Machacek.

From the post:

Spring Data is an excellent tool that generates implementations of repositories using the naming conventions similar to the convention used in the dynamic language runtimes such as Grails and Ruby on Rails. In this post, I am going to show you how to use Spring Data in your Scala code.

In this post, we will construct trivial application that uses the Spring Data Neo4j to persist simple User objects. The only difference is that we’ll use Scala throughout and highlight some of the sticky points of Spring Data in Scala.

The post seeks to illustrate that Spring remains relevant, even after the advent of Scala.

It does that but code adoption, like application of security patches, is a mixed bag. Some people are using (read advocating) the latest releases, some people are using useful (read stable) software and still others are using older (read unsupported) software. You are likely to find Neo4j in one or more of those environments. Documentation for any and/or all of them would promote usage of Neo4j.

Spring MVC 3.1 – Implement CRUD with Spring Data Neo4j

Thursday, March 22nd, 2012

Spring MVC 3.1 – Implement CRUD with Spring Data Neo4j

The title of the post includes “(Part-1)” but all five parts have been posted.

From the post:

In this tutorial, we will create a simple CRUD application using Spring 3.1 and Neo4j. We will based this tutorial on a previous guide for MongoDB. This means we will re-use our existing design and implement only the data layer to use Neo4j as our data store.

I would start at the beginning MongoDB post, Spring MVC 3.1 – Implement CRUD with Spring Data MongoDB. (It won’t hurt you to learn some MongoDB as well.)

Quite definitely will repay the time you spend.

Spring Data Neo4j 2.1.0 Milestone 1 Released

Sunday, March 4th, 2012

Spring Data Neo4j 2.1.0 Milestone 1 Released

Don’t be the last one in your office to see the latest milestone!

From the post:

Since the last release of Spring DataNeo4j we worked on a number of issues that you raised as important improvements and extensions.

Thanks to Mark Spitzler, Oliver Gierke, Rajaram Ganeshan, Laurent Pireyn for their contributions and all the other community members for the feedback and discussions.

We want to encourage you to give it a try, especially the new things and send us your feedback.

We are aware of the of issues that are still open and want to address them by the 2.1 release which is planned for the end of March – aligned with Neo4j 1.7.

….

Changes in version 2.1.M1 (2012-03-02)

  • DATAGRAPH-181 added support for unique entities with template.getOrCreateNode and @Indexed(unique=true)
  • DATAGRAPH-198 added support for custom target type, e.g. storing a Date converted to a Long @GraphProperty(propertyType=Long.class)
  • DATAGRAPH-102 fixed type representation in graph with support for @TypeAlias to allow shorter type-identifiers in the graph
  • DATAGRAPH-204 pom.xml cleanup (repositories) and dependency to SFW is now range from 3.0.7.RELEASE – 3.2
  • DATAGRAPH-185 cypher queries for single fields return null on no results
  • DATAGRAPH-182 allow @RelatedTo on Single RelationshipEntity fields + internal refactorings
  • DATAGRAPH-202 provide a getRelationshipsBetween() method in Neo4jTemplate
  • GH-#34 Fix for using Neo4j High-Availability
  • DATAGRAPH-176 Added debug log output for cypher and gremlin query as well as derived query methods
  • DATAGRAPH-186 default value for readonly relationship collections
  • DATAGRAPH-173 fixed verify method for interfaces, added interface support for type-representation strategies
  • DATAGRAPH-169 Backquoting all variable parts of derived finder queries to accommodate for non-identifier names.
  • DATAGRAPH-164 Added methods to determine stored java type to neo4j-template and crud-repository
  • DATAGRAPH-166 fixed multiple sort parameters
  • documentation updates

Deploy Spring Data Neo4j into the Cloud (Feb. 16 – Webinar)

Monday, February 13th, 2012

Deploy Spring Data Neo4j into the Cloud (Feb. 16 – Webinar)

From the webpage:

Webinar
Thursday, February 16
10:00 PST

Join this webinar for a practical guide to deploying your Spring Data Neo4j application into the cloud.

Spring Data Neo4j is part of the Spring Data project which aims to provide convenient support for NOSQL databases.

Michael Hunger will demonstrate, using examples from his upcoming book Good Relationships, how to set up your own Spring Data Neo4j database onto Heroku.

Cloud deployments, Heroku, Spring Data Neo4j and other cool stuff (Stockholm, Sweden)

Friday, January 27th, 2012

Cloud deployments, Heroku, Spring Data Neo4j and other cool stuff

From the announcement:

We will meet up at The Hub (no not the github unfortunately, though that’s cool too). This time it will be a a visit by Peter Neubauer, VP Community at Neo Technology (and may be some other Neo4j hackers) who will talk about Cloud deployments, Heroku, Spring Data Neo4j etc. This will be a very interesting meetup as we will touch subjects connected to Python, Ruby, Java and what not. Laptops are optional but hey we wont stop you from hacking later :).

We also plan on doing a community brain storm session where we can talk about

  • what are the things that we would like to see Neo4j do, things that are missing, things that can be improved
  • how can we help spread the adoption of Neo4j. how to improve your learning

As usual we would love to see people contribute, so if you have some thing to show or share please let us know and we can modify the agenda. We will take 1 hour earlier on the Friday (from the usual 6:30, so we don’t come between you and your well deserved friday weekend)

This meetup invite will remain open till 31st of January 2012. So bring your friends, have some beer and discuss graphy things with us.

The RSVP closes 31 January 2012.

Notes, posts, and pointers to the same greatly appreciated!

Spring onto Heroku

Thursday, January 26th, 2012

Spring onto Heroku by Andreas Kollegger.

From the post:

Deploying your application into the cloud is a great way to scale from “wouldn’t it be cool if..” to giving interviews to Forbes, Fast Company, and Jimmy Fallon. Heroku makes it super easy to provision everything you need, including a Neo4j Add-on. With a few simple adjustments, your Spring Data Neo4j application is ready to take that first step into the cloud.

Let’s walk through the process, assuming this scenario:

Ready? OK, first let’s look at your application.

As one commenter noted, just in time for the Neo4j Challenge!

Persisting relationship entities in Neo4j

Thursday, January 26th, 2012

Persisting relationship entities in Neo4j by Sunil Prakash Inteti

From the post:

Neo4j is a high-performance, NOSQL graph database with all the features of a mature and robust database. In Neo4j data gets stored in nodes connected to each other by relationship entities that carry its own properties. These relationships are very important in graphs and helps to traverse the graph and make decisions. This blog discusses the two ways to persist a relationship between nodes and also the scenario’s which suits their respective usage. Spring-data-neo4j by springsource gives us the flexibility of using the spring programming model when working with neo4j database. The code examples in this blog will be using spring-data-neo4j.

Excellent post that illustrates how a relationship is persisted can make a big difference in performance. Very much design guideline material.

Spring Data Neo4j Webinar Follow Up

Monday, January 16th, 2012

Spring Data Neo4j Webinar Follow Up

OK, I’ll ‘fess up, I missed the Spring Data Neo4j webinar. 🙁

But, all is not lost!

Not only can you watch the webinar, grab the slides, and other resources, but questions left when the webinar ended are answered.

Spring Data Neo4j 2.0.0 Released

Sunday, January 1st, 2012

Spring Data Neo4j 2.0.0 Released

From the post:

We’re happy to present you with the release of Spring Data Neo4j 2.0 as a small Christmas gift from our side. Spring Data Neo4j is based on Neo4j 1.6.M02.

The major feature of this release is the addition of a simple mapping mode (spring-data-neo4j). Just annotate your POJOs and use a GraphRepository for the usual CRUD and advanced query operations.

For graph-attached POJOs and high performance use-cases, you can employ the advanced mapping mode (spring-data-neo4j-aspects), which leverages AspectJ to enhance your domain class.

Both mapping modes use the same underlying code, which is now based on the Spring Data Commons mapping infrastructure.

We improved the Cypher graph query language support by supporting new Cypher features, adding queries derived from finder-methods to the repositories and extended the result handling conversions to include projections to mapping-interfaces, Pages and more.

See the post for more information.

Good Relationships: The Spring Data Graph Guide Book

Sunday, January 1st, 2012

Good Relationships: The Spring Data Graph Guide Book [updated to point to stable (latest) version guide. PDF file. Other versions http://static.springsource.org/spring-data/data-neo4j/docs/]

This is an update to: Good Relationships: The Spring Data Graph Guide Book (1.0.0-BUILD-SNAPSHOT).

Since there was no date on the updated text I can’t tell you when it occurred.

And since the URL doesn’t hold the promise of uniquely identifying the current version of the document, you won’t know when it changes from the URL.

This is an excellent introduction to Spring Data Neo4j. But, It is annoying that so much web based information lacks dates or other versioning information. It is as though it exists in an eternal “now” with no past to speak of. At least outside of version control systems. Not likely to happen so enjoy reading this introduction to Spring Data Neo4j.


PS: Apologies for the inline revision but using the stable URL may help some future reader.

Introduction to Spring Data Neo4j

Tuesday, November 22nd, 2011

Introduction to Spring Data Neo4j by Michael Hunger.

From the post:

The Spring Data Neo4j project has evolved to support the Neo4j graph data store within the Spring paradigm. With version 2.0 already at release candidate stage, now is a great time to learn how to extend your application’s persistence model to start using graphs instead of traditional relational stores. Neo4j expert, Michael Hunger, provides a guided tour of the technology and provides details on how to get started in this Introduction to Spring Data Neo4j.

Be forewarned that the audio is fairly poor quality.

Interesting, see time mark: 11:12, Google Image Search: ..graph OR network”

Displays slide full of different images but consider how they were obtained.

User had to specify “graph” or “network.”

This is what they call a “teaching moment.” 😉

First, a user who knows only “graph” or only “network” as a search term will retrieve less than all of the possible results.

Second, as users who do know both terms, we might decide to create a mapping between “graph” and “network” so that any user who searches for one gets those results, plus the results for the other.

Third, but if all we do is map two English terms together, with nothing more, on what basis is some subsequent user going to map terms to our mapping?

No topic map offers a universal solution to these issues but it can offer a solution for specified cases.

Spring Data Neo4j

Sunday, October 30th, 2011

Spring Data Neo4j

From the webpage:

Spring Data Neo4j enables POJO based development for graph databases like Neo4j. It extends annotated entity classes with transparent mapping functionality. Spring Data Neo4j is part of the bigger Spring Data project which aims to provide convenient support for NOSQL databases.

Examples, a webinar, all the community friendly stuff you have come to expect from Neo4j!

Introduction to Spring Data Neo4j – Webinar

Monday, October 24th, 2011

Introduction to Spring Data Neo4j – Webinar – 2011-11-10 10:00 PT

From the website:

The Spring Data project makes it easier to build Spring-powered applications that use new data access technologies such as non-relational NOSQL databases, cloud based data services, for instance graph databases. This webinar is designed for enterprise developers that are working with Spring and need to understand how they would integrate a NOSQL graph database.

Spring Data Neo4j is an integration library for the open source NOSQL graph database Neo4j and has been around for over a year, evolving from its infancy as brainchild of Rod Johnson and Emil Eifrem. It supports multiple, annotation based POJO to Graph Mapping strategies, a Neo4j Template API and extensive support for Spring Data Repositories. It can work with an embedded graph database or with the standalone Neo4j Server.

Spring Data Neo4j 2.0.0.M1 Released

Sunday, October 23rd, 2011

Spring Data Neo4j 2.0.0.M1 Released

From the post:

We are pleased to announce that the first milestone release (2.0.0.M1) of the new Spring Data Neo4j major version 2.0 is now available!

In the last few weeks the engineers have been busy transforming the existing library under a new name to make it fit for its presentation at Spring One 2GX next week.

A major internal refactoring split the framework into several submodules, each addressing a different concern.

  • spring-data-neo4j: Neo4jTemplate for easy, copying object-graph-mapping, and Spring Data Repositories using persistence entity meta information
  • spring-data-neo4j-aspects: transparent object-graph-mapping using AspectJ
  • spring-data-neo4j-cross-store: AspectJ based cross-store-persistence between JPA and Neo4j
  • spring-data-neo4j-rest: transparent access of a remote Neo4j REST-Server

As part of the refactoring, the source repository was also renamed and re-organized. The previously separated examples and the tutorial project are now included directly in the same github project.

NOSQL means Neo4j plus Spring Roo

Monday, September 26th, 2011

NOSQL means Neo4j plus Spring Roo

Interesting post on the use of Neo4J with Spring Roo.

Interesting on its own but it also uses Greek Mythology as a data set so that could explain my interest. 😉

The next post promises to show inferring new facts based on existing relationships.

Neo4j and Spring – Practical Primer 28 Sept 2011 (London)

Thursday, September 22nd, 2011

Neo4j and Spring – Practical Primer 28 Sept 2011 (London)

From the announcement:

In this talk Aleksa will introduce how you can integrate Neo4j with Spring – the popular Java enterprise framework.

Topics covered will include declarative transactions, object-to-graph mapping using Spring-data-graph components, as well collections mapping using Cypher and Gremlin annotation support introduced in newly released version 1.1.0 of spring-data-graph. You can expect a lot of hands on coding and practical examples while exploring the latest features of neo4j and spring-data-graph.

Aleksa Vukotic is a Data Management Practice lead and Spring veteran with extensive experience as author, trainer, architect and developer. Working with graph data models on several projects, Neo4j has become Aleksa’s technology of choice for solving complex graph related problems.

Looks interesting to me!

Spring Data Graph 1.1.0 with Neo4j support released

Sunday, August 21st, 2011

Spring Data Graph 1.1.0 with Neo4j support released

From the wiki:

We are pleased to announce that the second release (1.1.0.RELEASE) of the Spring Data Graph project with Neo4j support is now available!

After the first public release of Spring Data Graph in April 2011 we mainly focused on user feedback.

With the improved documentation around the tooling and an upgraded AspectJ version we addressed many of the AspectJ issues that where reported by users. With the latest STS and Eclipse and hopefully with Idea11 it is possible to develop Spring Data Graph applications without the red wiggles. To further ease the development we also provided sample build scripts for ant/ivy and a plugin for gradle.

Of course we kept pace with development of Neo4j, currently using the latest stable release of Neo4j (1.4.1).

During the last months of Neo4j development the improved querying (Cypher, Gremlin) support was one of the important aspects.

So we strove to support it on all levels. Now, it is possible to execute Cypher queries from Spring Data Graph Repositories, from the Neo4j-Template but also as part of dynamic field annotations and via the introduced entity methods. The same goes for Gremlin scripts. What’s possible with this new expressive power? Let’s take a look. …

OK, better? Worse? About the same? Projects can’t improve without your feedback. Issues discussed only around water coolers can’t be addressed. Yes?

There’s some famous so-and-so’s Law about non-reported comments but I can’t find the reference. You?

Spring Data Graph 1.1.0.RC1

Tuesday, July 26th, 2011

Spring Data Graph 1.1.0.RC1 with Neo4j support Released

From the post:

We are pleased to announce that a new release candidate (1.1.0.RC1) of the Spring Data Graph project with Neo4j support is now available!

The primary goal of the Spring Data project is to make it easier to build Spring-powered applications that use new data access technologies such as non-relational databases, map-reduce frameworks, and cloud based data services.

The Graph Neo4j module provides integration with the Neo4j graph database. Back in 2010, Rod Johnson and Emil Eifrem started brainstorming about Spring and Neo4j integration including transparent persistence and cross-store support. After an initial prototype it has been further developed in close cooperation between the VMware and Neo Technology development teams.

To learn more about the project, visit the Spring Data Graph Project Homepage.

Feedback requested!

Cineasts

Friday, July 15th, 2011

Cineasts

A demo based on:

  • Springsource
  • Springdata
  • Springdatagraph
  • Neo4j

Seems to have some rough edges. Rating movies by selecting “heads” keeps jumping to the top of the page. Not obvious, even after looking around, how you would add friends, etc. Underlying technology is sound but the UI could use some work.

Spring Data Graph with Neo4j Support

Monday, July 4th, 2011

Spring Data Graph with Neo4j Support

From the homepage:

Spring Data Graph enables POJO based development for Graph Databases like Neo4j. It extends annotated entity classes with transparent mapping functionality. A template programming model equivalent to well known Spring templates is also supported. Spring Data Graph is part of the bigger Spring Data project which aims to provide convenient support for NoSQL databases.


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 (via AspectJ
  • 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

If Neo4j or another NoSQL database is on your agenda, take a long look.

Getting Started Spring Data Graph

Friday, May 20th, 2011

A series of videos on the Spring project and Neo4j:

Getting Started Spring Data Graph Part 1

Overview of the Spring project. Crash course in NoSQL. Reviews the four types of NoSQL databases. Two axes of scalability.

Comment: Watch Part 1 only if you are: 1) A glutton for repetition, 2) A reviewer trying to be complete.

Getting Started Spring Data Graph Part 2

Continuation of Part 1. 90% of corporate issues fit well into graph databases. Property graph. Edges represent relationships. Can have properties. Graphs are whiteboard friendly. Jumps to social graph code example. Promotes performance of graph databases. Then gets to Srping = JPA for Graph databases. (updated link, more comments forthcoming)

Getting Started Spring Data Graph Part 3

Continuation of Part 2. (updated link, new comments forthcoming)

Getting Started Spring Data Graph Part 4

Continuation of Part 3. (updated link, new comments forthcoming)

Suggest that you also spend time with:

Spring Data Graph with Neo4J Support

The main page for this project.

Through different links you will find:

The Spring Data Graph Guide Book (HTML)

and

The Spring Data Graph Guide Book (PDF)

I have only scanned the TOCs and they appear to be the same material.

An exciting project and one that bears watching.


I have updated the video links to point to presentations where the slide transitions work. Will be reviewing the new videos and posting updated comments.