web-dev-qa-db-de.com

Überwintern mit MongoDB

Ich suche nach Ressourcen, die zeigen, wie man MongoDB mit Hibernate (vorzugsweise innerhalb des Frühlings) integriert, damit ich zwischen einem RDBMS und einer NoSql-Alternative wechseln kann: Hat jemand Erfahrung damit?

37
adwk

Das kann man nicht so leicht machen. In Hibernate geht es darum, Java-Objekte einer relationalen Datenbank zuzuordnen. Obwohl Hibernate viele Details abstrahiert, müssen Sie immer noch verstehen, wie relationale Datenbanken mit Dingen wie Fremd- und Primärschlüsseln arbeiten, und welche Auswirkungen die Ausführung von Abfragen auf die Leistung hat. MongoDB erfordert eine völlig andere Art der Gestaltung Ihrer Datenbank, die sich auf Objekte anstatt auf Spalten und Tabellen konzentriert. Sie können möglicherweise einen Hibernate-Dialekt für MongoDB erstellen, indem Sie ein Design erstellen, das sowohl für eine relationale Datenbank als auch für eine NoSql-Datenbank geeignet ist. Dadurch erhalten Sie ein Design, das bei beiden nicht funktioniert.

67
Jared

Was ist mit Hibernate OGM ? Es enthält JPA für No-SQL - Datenbanken.

28
jacktrades

Die Migration wäre einfacher, wenn Sie Spring MongoTemplate verwenden (ähnlich wie HibernateTemplate).
Zu seinen Funktionen gehört die Unterstützung von JPA-Anmerkungen (obwohl ich nicht sicher bin, in welchem ​​Umfang).
Weitere Informationen: http://www.springsource.org/spring-data/mongodb

Sie benötigen Folgendes:

  1. Fügen Sie Ihrem Projekt die JAR-Datei spring-data-mongodb hinzu (verfügbar in maven central).
  2. Fügen Sie Ihrem Projekt die JAR für den Mongo-Java-Treiber hinzu (verfügbar in maven central).
  3. Verwenden Sie die bereitgestellte MongoTemplate-Klasse auf ähnliche Weise wie HibernateTemplate. Zum Beispiel: mongoTemplate.findById(id, MyClass.class);
    mongoTemplate.insert(myObject);

Hier ist ein konkretes Beispiel mit Code: verwende-spring-and-hibernate-with-mongodb

22
Israel Zalmanov
4
user2164052

Es gibt auch kundera , das JPA-Annotationen verwendet, um Ihr Objekt von/in eine Mongodb zu lesen/schreiben. Wenn Sie mit dem Winterschlaf vertraut sind, sollte es recht einfach sein.

Ich habe vor kurzem Morphia ausprobiert, wobei derselbe Ansatz verwendet wird, jedoch mit eigenen Anmerkungen

2
thomash

Der Vollständigkeit halber unterstützt PlayORM jetzt auch MongoDB. PlayORM ist eine NoSQL-Mapping-Lösung für Objekte, mit der Sie POJOs schreiben und sich mit allen Details des Rangierens/Entfernens von MongoDB befassen können. Besuchen Sie die Dokumentation hier

1
Easility

Möge dieses Blog hilfreich sein: http://drorbr.blogspot.com/2010/02/migrating-springhibernate-application.html .__ Hier beschreibt Dror Bereznitsky, wie man eine auf Sping/Hibernate basierende Lösung in Mongodb integriert.

1
wbartussek

Wenn Sie Java verwenden, können Sie Hibernate OGM verwenden. Java bietet Persistenzunterstützung für NoSQL - Datenbanken.

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

0
piyush shanu

Um nur ein Beispiel zu geben, mache ich etwas ähnliches. In ColdFusion ist Hibernate integriert, und um Ihr Hibernate-Objekt zu speichern, müssen Sie EntitySave (Obj) ausführen. Was wir jedoch getan haben, ist das Orm-Objekt zu erstellen, dann eine mongoDB-Coldfusion-Komponente zu verwenden und das Objekt einfach zu speichern, indem Sie mongo.Save (obj, collectionName) verwenden. 

0
Faisal Abid

Ich denke, Hibernate bietet die gewünschte Funktionalität. Schauen Sie sich dies auf der offiziellen Website an: Mischen mehrerer NoSQL-Datenspeicher in einer Anwendung, z. benutze Neo4j für deine Freundschaftsgrafik und MongoDB für deine Blogposts. Oder mischen Sie NoSQL und relationale Datenbanken.

Referenz

0
crnisamuraj