Frage

Ich bin auf der Suche nach Ressourcen, die zeigen, wie Integration MongoDB mit Hibernate (vorzugsweise innerhalb Feder), so dass ich kann wechseln zwischen RDBMS und NoSql-alternative:hat jemand Erfahrung, dies zu tun?

War es hilfreich?

Lösung

Sie können dies nicht ohne weiteres tun. Der Punkt von Hibernate ist Java-Objekte in einer relationalen Datenbank abzubilden. Obwohl Hibernate abstrahiert viele Details weg müssen Sie noch wissen, wie relationale Datenbanken mit den Dingen arbeiten wie die Außen- und Primärschlüssel, und die Auswirkungen auf die Leistung von Abfragen ausführen Sie. MongoDB erfordert eine ganze andere Art und Weise Ihre Datenbank entwerfen auf Objekte konzentrieren statt Spalten und Tabellen. während Sie ein Hibernate Dialekt erstellen kann in der Lage sein, für MongoDB ein Design erstellen, geben Sie sowohl ein Design, das ein schlechtes Licht auf beide funktioniert.

einer relationalen Datenbank und einer NoSQL-Datenbank funktionieren würde,

Andere Tipps

Was Hibernate OGM ? Es bietet JPA für No-SQL Datenbanken.

Migration wäre einfacher, wenn Sie verwenden Frühjahr MongoTemplate (ähnlich HibernateTemplate).
Unter seinen Funktionen ist die Unterstützung für JPA-Annotationen (obwohl, ich bin mir nicht sicher, in welchem Umfang).
Mehr sehen: http://www.springsource.org/spring-data/mongodb

Sie benötigen die folgenden:

  1. Fügen Sie spring-data-mongodb JAR in Ihrem Projekt (verfügbar in maven central).
  2. Add mongo-java-Treiber-JAR in Ihrem Projekt (verfügbar in maven central).
  3. Verwenden Sie das mitgelieferte MongoTemplate Klasse in eine ähnliche Weise zu HibernateTemplate.E. g.:mongoTemplate.findById(id, MyClass.class);
    mongoTemplate.insert(myObject);

Hier ist ein konkretes Beispiel mit code: use-spring-und hibernate-mit-mongodb

Es gibt auch kundera , die JPA-Annotationen verwendet lesen / schreiben Ihr Objekt aus / zu einem mongodb. Wenn Sie mit Hibernate vertraut ara, sollte es ganz auf den Einsatz straightformard werden.

Ich habe vor kurzem versucht, Morphia , die den gleichen Ansatz nimmt, sondern mit seinen eigenen Anmerkungen. Es funktioniert gut,

Wenn Sie mit Java, dann können Sie Hibernate OGM verwenden es bietet Java Persistence Unterstützung für NoSQL Datenbanken.

Für weitere Informationen besuchen Sie http://hibernate.org/ogm/

Mai dieses Blog hilft: http://drorbr.blogspot.com /2010/02/migrating-springhibernate-application.html Hier Dror Bereznitsky beschreibt schön wie eine sping integrieren / Hibernate basierte Lösung mit mongodb.

Aus Gründen der Vollständigkeit, PlayORM unterstützt auch jetzt MongoDB. PlayORM ist eine Aufgabe NoSQL-Mapping-Lösung, so dass Sie POJO die schreiben können, und lassen Sie es mit allen Details von Rangier- beschäftigen / unmarshalling zu MongoDB. Besuchen Sie seine Dokumentation hier

Nun, Sie nur ein Beispiel zu geben, ich tue simmilar somehting. In Coldfusion, Hibernate ist integriert und um Ihr Hibernate Objekt zu speichern, stehen ganze Sie EntitySave (Obj) zu tun. Doch das, was wir getan haben, ist das Orm Objekt zu bauen, und dann eine mongoDB Coldfusion-Komponente verwenden und einfach speichern das Objekt, indem Sie mongo.Save (obj, collection).

Ich denke, Hibernate gewünschte Funktionalität zur Verfügung stellt. Werfen Sie einen Blick auf diese, auf der offiziellen Website: Mischen mehrere NoSQL Datenspeicher in einer Anwendung, z.B. verwenden Neo4j für Ihre Freundschaft Graph und MongoDB für Ihre Blog-Posts. Oder mischen NoSQL und relationalen Datenbanken.

Referenz

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top