Ich habe eine DAO-Klasse, die intern das next_val von einer Oracle-Sequenz abfragt.Hibernate 5: createNativeQuery() im Singleton-Muster
Da diese Sequenz nicht an Einheiten gebunden ist, sondern einfach den Wert für die interne Logik der Abfrage, ich bin jedes Mal der getNextValueFromSequence()
Methode der nativen Abfrage erstellen auf der DAO aufgerufen wird, wie folgt:
Query nextValQuery = entityManager.createNativeQuery(GET_NEXT_SEQUENCE_VAL_SQL);
Da ich die Abfrage jedes Mal neu erstelle, wenn die Methode aufgerufen wird, habe ich daran gedacht, die native Abfrage in einem Singleton zu definieren, der als Spring-Bean definiert ist, so dass die Abfrage erst beim ersten Aufruf von getNextValueFromSequence()
erstellt wird.
Gibt es einen Nachteil dabei? Würde die Hibernate-Sitzung Probleme mit diesem Ansatz verursachen?
Hallo Maciej, danke für deine Antwort. Ich kannte dieses Optoin, aber leider kann ich '@ NamedNativeQuery' nicht verwenden, da ich keine Entitäten an diese Sequenz gebunden habe. –
Das ist kein Problem. Die Spezifikation erzwingt keine Abfrage für die Entität, in der sie definiert ist. So können Sie immer noch gehen –