@@ -20,7 +20,7 @@ Da Hibernate OGM ein laufender Prozess ist können bislang nur manche Sprachkons
-`LIKE`, `IN` und `BETWEEN`
-`ORDER BY`
Im Projekt my-aktion wird an einer Stelle die SQL-Aggregatfunktion SUM genutzt, in der Dokumentation werden diese nicht bei unterstützten Konstrukten aufgezählt, allerdings scheint denoch zumindest eine teilweiße Unterstützung für HQL zu bestehen. Näheres weiter unten. Die restlichen Queries konnten Problemlos weiter genutzt werden ohne spezielle Anpassungen vornehmen zu müssen.
Im Projekt my-aktion wird an einer Stelle die SQL-Aggregatfunktion SUM genutzt, in der Dokumentation werden diese nicht bei unterstützten Konstrukten aufgezählt. Allerdings scheint denoch zumindest eine teilweiße Unterstützung für HQL zu bestehen. Näheres weiter unten. Die restlichen Queries konnten Problemlos weiter genutzt werden ohne spezielle Anpassungen vornehmen zu müssen.
Der unten dargestellte Code zeigt die Methode in welcher die Abfrage mit der Summenfunktion aufgerufen wird. Der einzige Unterschied zwischen diesem und den anderen Methoden in der Klasse ist der dass anstatt der JPA-API die Hibernate-Native-API genutzt wird und damit HQL anstatt JPQL.
...
...
@@ -48,7 +48,7 @@ Der unten dargestellte Code zeigt die Methode in welcher die Abfrage mit der Sum
}
Da im Code nur auf das Session-Interface zugegriffen wird und nicht direkt auf die OgmSession, sollte die Methode auch mit einer Hibernate-ORM-Lösung lauffähig sein, müsste also nicht extra angepasst werden. Der Nachteil dieser Methode ist allerdings dass die reine Nutzung von JPA damit entfällt und somit nicht einfach auf einen andere Implementierung wie zum Beispiel EclipseLink umgestiegen werden könnte.
Da im Code nur auf das Session-Interface zugegriffen wird und nicht direkt auf die OgmSession, sollte die Methode auch mit einer Hibernate-ORM-Lösung lauffähig sein, müsste also nicht extra angepasst werden. Der Nachteil dieser Methode ist allerdings dass die reine Nutzung von JPA damit entfällt und somit nicht einfach auf eine andere Implementierung wie zum Beispiel EclipseLink umgestiegen werden könnte.
Die Lösung wurde auf der folgenden Webseite gefunden https://www.gregoriopalama.com/mongodb-on-wildfly-using-hibernate-ogm/
...
...
@@ -62,7 +62,7 @@ Beide sind als erledigt markiert. Im ersten wird Support für die SQL-Aggregatfu
Des Weiteren ist auf der ersten Seite die Aufgabe verlinkt die weiteren Aggregatfunktionen zu implementieren. Die verlinkte Aufgabe ist der dritte Link. Wenn man sich den Github Link für den dazugehörigen Pull Request ansieht und dessen Kommentare und Commits sieht es so aus als ob die Änderungen bereits veröffentlicht wurden die Dokumentation diesbezüglich aber nicht aktualisiert worden ist.
Eine Alternative wäre noch gewesen den NamedQuery mit der *"criteria-only find syntax"* oder der "*MongoDB CLI syntax"* zu schreiben. Da ein einfaches wechseln zwischen Hibernate ORM und OGM dadurch erschwert würden wurde bewusst darauf verzichtet.
Eine mögliche Alternative wäre es den NamedQuery mit der *"criteria-only find syntax"* oder der "*MongoDB CLI syntax"*und einem NativeNamedQuery zu schreiben. Da ein einfaches wechseln zwischen Hibernate ORM und OGM dadurch erschwert werden würden wurde bewusst darauf verzichtet.