Ich habe gerade angefangen, Hibernate zu lernen, aber basierend auf dem gelesenen Handbuch scheint der folgende Code Auto-Commit zu verwenden, da commit() nicht explizit aufgerufen wird. Alle Beispiele, die ich gefunden habe here zeigen Verwendung von commit(). Da ich gerade lerne wollte ich eine Bestätigung von der Gemeinde bekommen, dass ich den richtigen Weg dachte.Hibernate AutoCommit Beispiel in Java
this.session = HibernateUtil.getSessionFactory().getCurrentSession();
Transaction tx = session.beginTransaction();
session.clear();
entityReturned = (MultipleKeyTable) session.get(MultipleKeyTable.class, entityId);
session.close();
bearbeiten ich, dass die hibernate.connection.autocommit
erwähnt haben sollte, ist nicht in Config definiert, und ich glaube, dass standardmäßig auf true gesetzt wird.
Bearbeiten Ich war falsch hibernate.connection.autocommit
ist standardmäßig auf false festgelegt. Danke Apostolos.
Die 'hibernate.connection.autocommit' Eigenschaft, falls nicht definiert, wird auf True gesetzt (von dem, was ich gelesen habe). An diesem Punkt kann ich das nicht wirklich ändern. Ich versuche zu verstehen, ob der Code, den ich gepostet habe, Autocommit verwendet. Wenn es ist, muss ich meinen Code abgrenzen, um das Commit explizit zu behandeln, da ich Autocommit nicht verwenden möchte. – Hodglem
Standardmäßig ist es auf "false" gesetzt und es ist nicht empfehlenswert, es auf "true" zu setzen. Um zu sehen, ob Autocommit aktiviert ist, machen Sie bitte eine Aktion (Einfügen/Aktualisieren/Löschen) und sehen Sie sich die Ergebnisse an. In diesem Beispiel lesen Sie nur eine Zeile. Ich bin mir aber ziemlich sicher, dass beim Start von Hibernate protokolliert wird, welcher Autocommit-Wert verwendet wird. – Apostolos
Wenn Sie Ihre Frage also aktualisiert haben, verwenden Sie nicht Autocommit, da Sie den Autocommit in Ihrer Konfiguration nicht angegeben haben. Sie machen auch eine Select-Abfrage, so dass Sie nicht sehen, ob etw in Ihrer Datenbank passiert. Nehmen Sie einige Änderungen vor, speichern Sie sie und überprüfen Sie sie erneut. – Apostolos