BT
x A sua opinião é importante! Por favor preencha a pesquisa do InfoQ sobre os seus hábitos de leitura!

Novo Hibernate OGM traz mapeamento O/R para NoSQL

por Eder Magalhães em 24 Jun 2011 |

A JBoss anunciou o mais novo integrante da família Hibernate, o Hibernate OGM. Com o OGM, sigla para Object/Grid Mapper, é possível persistir dados a partir de aplicações Java em uma base de dados NoSQL, implementando a camada de persistência através do mapeamento com a Java Persistence API (JPA).

Segundo a JBoss, o Hibernate OGM favorece o uso de tecnologias NoSQL em projetos construídos sobre um modelo de domínio (domain model centric), por profissionais que não possuem grande experiência em ferramentas NoSQL. O projeto simplifica o modelo de programação de NoSQL, seguindo um modelo de persistência popular entre os desenvolvedores Java, JPA.

O Hibernate OGM define dois contratos para garantir as operações de persistência, as interfaces Persister e Loader. Através de implementações dessas duas interfaces, o OGM utiliza o Hibernate Core para realizar as operações CRUD (Criação, Leitura, Atualização, Apagamento) em entidades. Além do Hibernate Core, o Hibernate Search e o Infinispan são outras ferramentas utilizadas pelo Hibernate OGM. A figura a seguir (extraída da documentação do OGM) mostra uma visão da arquitetura do projeto:

Entre os conceitos básicos adotados pelo Hibernate OGM estão:

  • As entidades são armazenadas como tuplas, especificamente uma estrutura em Map<String, Object> em que a chave é o nome da coluna e o valor é o respectivo conteúdo.
  • Suporte aos seguintes tipos de relacionamento entre entidades: @ManyToOne, @OneToOne, @OneToMany e @ManyToMany. Este último só funciona em relacionamentos unidirecionais.
  • É mantido o conceito de chave primária para todas as entidades, além da chave estrangeira para relacionar entre entidades.
  • É isolada a camada de modelo (os Pojos persistentes) da camada de armazenamento (datastore).

A abstração entre os Pojos persistentes e o datastore do OGM define um isolamento entre a estrutura em que os dados são armazenados e as classes de modelo. Essa estratégia traz benefícios como a possibilidade de mudar a estrutura da classe sem se preocupar em migrar os dados gerados a partir de uma versão anterior da classe.

Outro benefício, proveniente do uso de um grafo é que, por maior que seja o volume de objetos relacionados não haverá problemas de armazenamento nessa estrutura. O diagrama a seguir (também da documentação) demonstra a estrutura da base NoSQL e como o Hibernate OGM organiza as informações:

Na versão atual do projeto, a linguagem de consultas do JPA, a JPQL, não é suportada. Mas consultas simples podem ser realizadas através da API do Hibernate Search. E, por enquanto, a única ferramenta NoSQL suportada é o Infinispan.

Os próximos passos planejados para Hibernate OGM são:

  • Suporte para outros mecanismos de armazenamento chave/valor.
  • Suporte a outras ferramentas NoSQL.
  • Desnormalização declarativa.
  • Suporte a JPQL, incluindo consultas complexas envolvendo relacionamentos.

É possível fazer o download do Hibernate OGM na página de distribuição ou no repositório do Maven. Já existe uma documentação de referência online, além do guia de instalação, o javadoc e o wiki do projeto. Durante o keynote do JBoss World 2011 foi apresentado uma demo do Hibernate OGM. É possível acessar o vídeo dessa apresentação ou um post no blog do Hibernate que resume o keynote.

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2014 C4Media Inc.
Política de privacidade
BT