Pregunta

Estoy buscando recursos que muestran cómo integrar MongoDB con Hibernate (preferentemente dentro de la primavera) de modo que pueda cambiar entre un RDBMS y una alternativa NoSQL:? ¿Alguien tiene experiencia haciendo esto

¿Fue útil?

Solución

No se puede hacer esto fácilmente. El punto de Hibernate es el mapeo de objetos Java a una base de datos relacional. Aunque Hibernate abstrae un montón de detalles de distancia que todavía tienen que entender cómo funciona bases de datos relacionales con cosas tales como claves externas y primarias, y las implicaciones de rendimiento de las consultas que se corre. MongoDB requiere toda una forma diferente de diseñar su base de datos para enfocar los objetos en lugar de columnas y tablas. mientras que usted puede ser capaz de crear un dialecto Hibernate para MongoDB crear un diseño que funcione tanto en una base de datos relacional y una base de datos NoSQL le dará un diseño que funciona mal en ambos.

Otros consejos

¿Qué hay de Hibernate OGM ? Proporciona APP para No-SQL bases de datos.

La migración sería más fácil si utiliza la primavera MongoTemplate (similar a HibernateTemplate). Estar entre sus características es el soporte para anotaciones JPA (aunque, no estoy seguro de en qué medida).
Ver más: http://www.springsource.org/spring-data/mongodb

Usted necesitará lo siguiente:

  1. Agregar archivo JAR-datos de primavera-mongodb a su proyecto (disponible en Maven central).
  2. Agregar archivo JAR mongo-java-conductor para su proyecto (in disponible maven central).
  3. Utilice la clase MongoTemplate proporcionado en una situación similar de manera a HibernateTemplate. P.ej.: mongoTemplate.findById(id, MyClass.class);
    mongoTemplate.insert(myObject);

Aquí hay un ejemplo concreto con el código: uso de resorte y -hibernate-con-mongodb

También hay Kundera , que utiliza JPA-anotaciones para leer / escribir el objeto a partir de / a un mongodb. Si ARA familiarizado con hibernación, debe ser bastante straightformard a su uso.

Morphia , que tiene el mismo enfoque, pero con sus propias anotaciones. Funciona bien

Si está utilizando Java entonces usted puede utilizar Hibernate OGM que proporciona soporte para Java Persistence NoSQL bases de datos.

Para más detalles visite http://hibernate.org/ogm/

mayo de este blog ayuda: http://drorbr.blogspot.com /2010/02/migrating-springhibernate-application.html Aquí Dror Bereznitsky describe muy bien cómo integrar un sping / solución basada en mongodb hibernación.

En aras de la exhaustividad, PlayORM también soporta MongoDB ahora. PlayORM es una solución de mapeo objeto NoSQL para que pueda escribir POJO de y dejar que se ocupan de todos los detalles del cálculo de referencias / unmarshalling a MongoDB. Visita su documentación aquí

Bueno, sólo para dar un ejemplo, yo estoy haciendo somehting simmilar. En ColdFusion, Hibernate está integrada y con el fin de salvar su objeto de hibernación, que hvae hacer EntitySave (obj). Sin embargo, lo que hemos hecho es construir el objeto Orm, y luego usar un componente de ColdFusion y MongoDB simplemente guardar el objeto yendo mongo.Save (obj, collectionName).

Creo que Hibernate proporciona la funcionalidad deseada. Echar un vistazo a este, que se encuentra en su página oficial: La mezcla de varios almacenes de datos NoSQL en una aplicación, por ejemplo, Neo4j utilizar para su gráfico de amistad y MongoDB para su blog. O mezclar NoSQL y bases de datos relacionales.

referencia

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top