Over a million developers have joined DZone.

A JPA Facade for Neo4J

· Java Zone

Learn more about the advantages of moving from a monolithic to microservices architecture.  Brought to you in partnership with IBM.

NoSQL is obviously a hot topic in the enterprise these days, at least at the water cooler if not in the production data center just yet. Naturally, the question of how to use NoSQL databases in Java EE applications (specifically existing Java EE 5 and Java EE 6 applications) comes up all too often. As it so turns out there are a number of very interesting initiatives out there to radically simplify the usage of NoSQL databases in Java EE applications by creating JPA based facades over them. Such efforts include EclipseLink NoSQL, Hibernate OGM, EasyCassandra and the like.

Amresh Singh, a core contributor of one such project, Kundera, recently wrote a pretty insightful blog post on creating a JPA facade over the popular graph database Neo4J (Kundera already supports Cassandra, HBase, MongoDB, Redis, etc). It's an interesting read - Amresh talks about the challenges and design decisions behind such an inherently intricate effort.

Incidentally, I recently presented at DevNexus on the topic of using NoSQL in Java EE via JPA and CDI. Stay tuned for that trip report, slide deck and code examples...

From Idea to Application gives you the architecture to quickly build, manage and run a range of applications (web, mobile, big data, new smart devices, etc.) on an open-standard, cloud-based platform. See why developers are using IBM Bluemix. Brought to you in partnership with IBM.


Published at DZone with permission of Reza Rahman, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}