F
fig0
Gast
Hallo,
ich spiele zur Zeit ein wenig mit Struts und Hibernate rum und bastle an so einer Art Webshop. Nun bin ich zum Thema Transaktionen gekommen. Folgende Situation:
Es können verschiedene Artikel in den Warenkorb gelegt werden, das soll alles transaktional verlaufen. Die ausgesuchten Artikel sollen praktisch "reserviert" sein und falls doch nicht gewünscht wird per rollback einfach wieder der anfangszustand hergestellt.
Bisher bin ich mit hibernate immer so vorgegangen:
Nun möchte ich ja mehrere Aktionen innerhalb einer Transaktion haben. Das heißt es wird beispielsweise der erste Artikel in den Warenkorb gelegt und dabei wird die Transaktion gestartet. Bei weiteren Artikeln wird die bestehende Transaktion genutzt. Problematisch ist nun nur, dass ja zwischendurch beispielsweise die Produkte gelistet werden. Dabei bin ich bisher wie oben gezeigt vorgegangen, das funktioniert jetzt natürlich nicht. Da beginTransaction() meckert, schließlich ist schon eine Transaktion da.
Muss ich mir nun eine Art Transaktionsmanager basteln oder habe ich einfach den falschen ansatz?
grüße
ich spiele zur Zeit ein wenig mit Struts und Hibernate rum und bastle an so einer Art Webshop. Nun bin ich zum Thema Transaktionen gekommen. Folgende Situation:
Es können verschiedene Artikel in den Warenkorb gelegt werden, das soll alles transaktional verlaufen. Die ausgesuchten Artikel sollen praktisch "reserviert" sein und falls doch nicht gewünscht wird per rollback einfach wieder der anfangszustand hergestellt.
Bisher bin ich mit hibernate immer so vorgegangen:
Code:
Session session = DbUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
// irgendwelche aktionen....
session.getTransaction().commit();
Nun möchte ich ja mehrere Aktionen innerhalb einer Transaktion haben. Das heißt es wird beispielsweise der erste Artikel in den Warenkorb gelegt und dabei wird die Transaktion gestartet. Bei weiteren Artikeln wird die bestehende Transaktion genutzt. Problematisch ist nun nur, dass ja zwischendurch beispielsweise die Produkte gelistet werden. Dabei bin ich bisher wie oben gezeigt vorgegangen, das funktioniert jetzt natürlich nicht. Da beginTransaction() meckert, schließlich ist schon eine Transaktion da.
Muss ich mir nun eine Art Transaktionsmanager basteln oder habe ich einfach den falschen ansatz?
grüße