Pergunta

Estou procurando recursos mostrando como integrar o MongoDB com o Hibernate (de preferência a partir da primavera) para que eu possa alternar entre um RDBMS e uma alternativa noSQL: alguém tem experiência em fazer isso?

Foi útil?

Solução

Você não pode fazer isso facilmente. O objetivo do hibernato é mapear objetos Java para um banco de dados relacional. Embora o Hibernate Abstracts muitos detalhes, você ainda precisa entender como os bancos de dados relacionais funcionam com coisas como chaves estrangeiras e primárias e as implicações de desempenho das consultas que você executa. O MongoDB requer uma maneira totalmente diferente de projetar seu banco de dados com foco em objetos em vez de colunas e tabelas. Embora você possa criar um dialeto de hibernação para o MongoDB, criando um design que funcionaria tanto em um banco de dados relacional quanto em um banco de dados NoSQL, fornecerá um design que funcione mal em ambos.

Outras dicas

A respeito Hibernate OGM? Fornece JPA para No-sql bancos de dados.

A migração seria mais fácil se você usar o Mongotemplate de primavera (semelhante ao hibernatetemplate).
Entre seus recursos está o suporte para as anotações JPA (embora não tenha certeza até que ponto).
Ver mais: http://www.springsource.org/spring-data/mongodb

Você precisará do seguinte:

  1. Adicione o frasco Spring-Data-MongoDB ao seu projeto (disponível no Maven Central).
  2. Adicione o Jar Mongo-Java-Driver ao seu projeto (disponível no Maven Central).
  3. Use a classe Mongotemplate fornecida de maneira semelhante ao hibernateTemplate. Por exemplo:mongoTemplate.findById(id, MyClass.class);
    mongoTemplate.insert(myObject);

Aqui está um exemplo concreto com código: use-spring e hibernate-with-mongodb

Há também Kundera, que usa as anuções JPA para ler/escrever seu objeto de/para um mongodb. Se você está familiarizado com o Hibernate, deve ser bastante reto de usar.

Eu tentei recentemente Morfina, que adota a mesma abordagem, mas com suas próprias anotações. Funciona bem

Se você está usando Java, então você pode usar Hibernate OGM fornece suporte de persistência de java para Nosql bancos de dados.

Para mais detalhes, visite http://hibernate.org/ogm/

Que este blog ajude: http://drorbr.blogspot.com/2010/02/migrating-springhibernate-application.html Aqui, Dror Bereznitsky descreve bem como integrar uma solução baseada em Sping/Hibernato com o MongoDB.

Por uma questão de completude, Playorm Também suporta MongoDB agora. O Playorm é uma solução de mapeamento de NOSQL de objeto para que você possa escrever Pojo e deixá -lo lidar com todos os detalhes do marechaling/UnarShalling para o MongoDB. Visite seu documentação aqui

Bem, apenas para dar um exemplo, estou fazendo de alguma forma similar. No Coldfusion, o Hibernate é integrado e, para salvar seu objeto de hibernação, você faz a EnteritySave (OBJ). No entanto, o que fizemos é construir o objeto ORM e, em seguida, usar um componente do MongoDB ColdFusion e apenas salvar o objeto indo Mongo.Save (OBJ, Coleção Nome).

Eu acho que o Hibernate fornece funcionalidade desejada. Dê uma olhada nisso, encontrada em seu site oficial: misturando vários datastores NoSQL em um aplicativo, por exemplo, use Neo4J para o seu gráfico de amizade e o MongoDB para as postagens do seu blog. Ou misture bancos de dados NoSQL e relacionais.

referência

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top