Skip to content
Snippets Groups Projects
user avatar
Julian Horner authored
cf8bdbb5
History
Name Last commit Last update
src/main
.gitignore
README.md
pom.xml

NoSQL-Datenbank für My-Aktion

Worum geht es in diesem Projekt?

Die Aufgabe dieses Projekts ist es die relationale H2-Datenbank des Projekts my-aktion durch die NoSQL-Datenbank MongoDB zu ersetzen, sowie dem anpassen von my-aktion an die neue Datenbank.

Zur Umsetzung wurde das Mapping-Framework Hibernate OGM genutzt. Hibernate OGM mappt die Entities der Anwendung nicht wie Hibernate ORM, an eine relationale Datenbank sondern an eine NoSQL-Datenbank. Im Falle des Projekt also an die MongoDB-Datenbank.

Hibernate OGM ist dazu in der Lage JPQL-Queries zu übersetzen in die Sprache der jeweilig angebundenen Datenbank. Der Programmierer muss also die Abfragesprache der genutzten Datenbank nicht zwangsläufig kennen.

Aufgetretene Probleme

Aggregatfunktionen in Hibernate OGM

Da Hibernate OGM ein laufender Prozess können bislang nur manche Sprachkonstrukte von JPQL in andere Abfragesprachen übersetzt werden. Was genau übersetzt wird unterscheidet sich je nach genutzter Datenbank. Die Version für MongoDB-Datenbanken unterstützt die folgenden Teile von JPQL:

  • simple comparisons using "<", "⇐", "=", ">=" and ">"
  • IS NULL and IS NOT NULL
  • the boolean operators AND, OR, NOT
  • LIKE, IN and BETWEEN
  • ORDER BY

Im Projekt my-aktion wird an einer Stelle die SQL-Aggregatfunktion SUM genutzt, diese wird theoretisch nicht unterstützt konnte aber mit einem "workaround" dennoch genutzt werden. Die restlichen Queries konnten Problemlos weiter genutzt werden ohne spezielle Anpassungen vornehmen zu müssen.

Organizer-Dokument

Wie startet man das Projekt?

Voraussetzungen

Ausführen