hy!
Wie schaff ich es mit Hibernate das Speichern atomar zu machen?
Nur eine Transaction anlegen nützt nichts und bei session.save() kann ich kein LockMode angeben.
Ich habs mal so versucht:
Code
SessionFactory factory = myConfiguration.buildSessionFactory();
Session session = factory.openSession();
Transaction tx = session.beginTransaction();
Student s = new Student();
s.setKlasse("5AHDVK");
s.setName("Max Mustermann");
session.save(s);
session.lock(s, LockMode.UPGRADE);
JOptionPane.showConfirmDialog(null, "Test");
tx.commit();
session.close();
Alles anzeigen
Ich führ das Programm aus und klick bei der JOPtionPane nichts an, dann start ich das Programm nochmal und lösch aber den JOptionPane aufruf raus. Das zweite Programm speichert den Datensatz richtig, aber wenn ich dann beim 1. Progamm einen Button der JOptionPane anklicke und Hibernate versucht den Datensatz zu speichern dann gibts einen Fehler weil die ID schon vorhanen ist.
Hat jemand so ein ähnliches Problem schon gelöst?