Hibernate.orgCommunity Documentation

Preface

Hibernate Object/Grid Mapper (OGM) is a persistence engine providing Java Persistence (JPA) support for NoSQL storage solutions. It reuses Hibernate Core's object life cycle management and (de)hydration engine but persists entities into a key/value store instead of a relational database. It reuses the Java Persistence Query Language (JP-QL) as an interface to querying stored data.

Hibernate OGM is developed specifically with Infinispan - an open source distributed in-memory key/value store - in mind, but the longer term goal is to abstract Hibernate OGM to work with any NoSQL store, not just key/value stores, similar to the way Hibernate Core works with any SQL-based relational database, regardless of specific SQL dialect.

If you wish to help with this abstraction effort or with Hibernate OGM in general, please refer to Chapter 1, How to get help and contribute on Hibernate OGM.

Hibernate OGM is released under the LGPL open source license.

Warning

This documentation and this project are work in progress. Please give us feedback on

  • what you like

  • what you don't like

  • what is confusing

Check Section 1.2, “How to contribute” on how to contact us.

Hibernate OGM tries to achieve a few goals:

NoSQL can be very disconcerting as it is composed of many disparate solutions with different benefits and drawbacks. Speaking only of the main ones, NoSQL is at least categorized in four families:

Each have different benefits and drawbacks and one solution might fit a use case better than an other. However access patterns and APIs are different from one product to the others.

Hibernate OGM is not expected to the the Rosetta stone used to interact with all NoSQL solution in all use cases. But for people modeling their data as a domain model, it provides distinctive advantages over raw APIs and has the benefit of providing an API and semantic quite known to Java developers. Reusing the same programmatic model and trying different (No)SQL engines will hopefully help people to explore alternative datastores.

Hibernate OGM also aims at helping people scale traditional relational databases by providing a NoSQL front-end and keeping the same JPA APIs and domain model.

Today, Hibernate OGM does not support all these goals. Here is a list of what we have:

Here are a few areas where Hibernate OGM can be beneficial:

These are a few ideas and the list will grow when we will add more capabilities to Hibernate OGM.