Hibernate OGM : JPA adapté pour le NoSQL

La vague du NoSQL est en train d’arriver doucement en France mais est déjà bien présente dans les pays anglo-saxons. Cependant, le marché reste relativement jeune et fragmenté ce qui ralenti d’autant l’adoption des différentes solutions présentes sur le marché.

Après avoir conquis le monde des bases de données relationnelles, les API de mapping objet-relationnel commencent à arriver pour le NoSQL en s’adaptant pour prendre en compte les nombreuses contraintes de ces technologies souvent disparates.

C’est ainsi que JBoss a récemment révélé lors du JBoss World un nouveau framework Hibernate : Hibernate OGM.

Le but de ce framework, encore en alpha, est de pouvoir utiliser JPA sur des bases NoSQL.

Comme son nom l’indique, ce framework est basé sur Hibernate Core et se contente de l’adapter afin de le faire fonctionner sur des stockages NoSQL.

Il reste encore de nombreuses limitations liées à la nature même des bases NoSQL notamment pour les systèmes de requêtages mais malgré le statut d’alpha du projet, l’essentiel est déjà présent et l’ensemble semble prometteur.

Pour le moment seul Infinispan est supporté, JBoss oblige, mais il est d’ores et déjà prévu d’intégrer d’autres bases NoSQL.

Au programme des éléments déjà implémentés et jugés stables :

  • Opérations CRUD pour les entités
  • Propriétés avec des types Java simples
  • Objets “embeddable”
  • Hiérarchie d’entité
  • Génération d’identifiants
  • Verrouillage optimiste
  • Liens @ManyToOne, @OneToOne, @OneToMany et @ManyToMany
  • Liens bi-directionnels
  • Collections de type Set, List et Map
  • La plus part des API natives Hibernate et JPA

Pour plus d’informations, je vous encourage à consulter ce post du blog JBoss et pour les plus intéressés, la documentation officielle.

A première vue l’approche semble très intéressante, vu que les développeurs n’auront pas de nouvelle API à apprendre pour passer au NoSQL. Cependant, je reste encore sceptique tant les différences sont nombreuses au niveau conceptuel entre le SGBDR et le NoSQL. Mais les équipes de JBoss nous ont déjà montré leur capacité à simplifier notre vie de développeurs grâce à des frameworks bien pensés et adaptés à nos besoins. J’ai donc bon espoir qu’ils arrivent à réaliser le tour de force de faire une API unifiée pour les principales bases NoSQL tout en profitant de leur puissance.

Nombre de vue : 187

COMMENTAIRES 2 commentaires

  1. Nicolas L. dit :

    Salut Matthieu! 😉

    L’une de mes interrogations portent sur comment vont ils (s’ils le font) unifier sous une même approche des bases NoSQL qui, sur la typologie de stockage, n’ont rien de commun. Comme par exemple un Cassandra (plutôt column based) et un MongoDB (document based).

    L’approche Spring Data n’est elle pas plus pragmatique ?

  2. Mathieu PARISOT dit :

    Pour le moment ils se focalisent sur les bases key/value vu qu’ils ont infispan sous la main mais ils ont l’air optimiste sur la possibilité d’intégrer d’autres types de moteurs. Mais comme je le dit en conclusion j’ai bien peur que ce soit au prix de pas mal de sacrifices.

    Spring Data me plait bien aussi, j’ai d’ailleurs prévu un article dessus prochainement, et je pense qu’il sera intéressant de comparer les deux même si Spring apporte bien plus que Hibernate OGM mais du coup s’éloigne de l’uniformisation voulue par Jboss.

    Le facteur déterminant restera la compatibilité. Si OGM offre une bonne compatibilité avec peu de compromis ils prendront un net ascendant sur Spring qui prône une approche multi-projets avec Spring Data.

    La bataille sera rude entre les deux et pas que sur ce front la j’ai l’impression.

AJOUTER UN COMMENTAIRE