From 5f48e39cb18cc47df0286513df74dd85ed3c10db Mon Sep 17 00:00:00 2001 From: Julian Horner <julianhorner@web.de> Date: Mon, 27 Jul 2020 20:04:23 +0200 Subject: [PATCH] Update README.md --- README.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/README.md b/README.md index 3328012..2c3e069 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,33 @@ Da Hibernate OGM ein laufender Prozess können bislang nur manche Sprachkonstruk 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. +Der unten dargestellte Code zeigt die Methode in welcher die Abfrage mit der Summenfunktion aufgerufen wird. Aus einem bisher unerfindlichen Grund funktioniert die Summenfunktion so obwohl diese eigentlich nicht unterstützt sein sollte. Der einzige Unterschied zwischen diesem und den anderen Methoden in der Klasse ist der dass anstatt über JPA-API direkt die Hibernate-Native-API genutzt wird. + +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 angepasst werden. + + @RolesAllowed("Organizer") + @Stateless + public class CampaignServiceBean implements CampaignService { + // ---------------------------------------------------------------------------------------------- + + ... + + private Double getAmountDonatedSoFar(Campaign campaign) { + Session session = entityManager.unwrap(Session.class); + + Double result = session.createNamedQuery(Campaign.getAmountDonatedSoFar, Double.class) + .setParameter("campaign", campaign).uniqueResult(); + if (result == null) + result = 0d; + + return result; + } + + ... + + // ---------------------------------------------------------------------------------------------- + } + ### Organizer-Dokument Da die Dokumente in einer MongoDB-Datenbank immer einen eindeutigen Identifier im Feld *_id* haben müssen, wurde in die Organizer-Entity ein Feld Id eingefügt welches das email-Feld als Identifier ersetzt. Damit dennoch sichergestellt wird das eine bestimmte E-Mail nur einmal vorkommt in der Tabelle, wurde an das email-Feld die Annotation @Column(unique = true) angehängt (siehe untenstehender Code). -- GitLab