Ich habe das Prinzip der JPA-Sperren (optimistisch und pessimistisch) verstanden, aber festgestellt, dass alle Sperren, die Sie auf einen Entitymanger, Abfrage usw. anwenden, immer auf der Serverseite sind. Alle EJBs befinden sich auf dem Server und somit sind auch die von ihnen verwendeten Transaktionen auf dem Server gesperrt.JPA-Sperren in Web-Komponenten verwenden
Angenommen, ein Kunde Ihrer E-Commerce-Website möchte seine Daten ändern. Der Benutzer füllt seine Änderungen in dem Client (z. B. Facelets) aus und sendet sie dann an den Server, der dann eine Sperre erhält. Was aber, wenn ein Administrator die Kundendaten zwischen dem ersten Lesen und vor dem Sperren-Erhalten geändert hat? Dies würde zu einem fehlerhaften Lesevorgang führen.
Wie kann ich also den Verriegelungsmechanismus auf die Webebene erweitern?
Ich habe keine Option im Web gefunden, aber ohne sie wäre die aktuelle Sperr-API von JPA ziemlich nutzlos, oder?
Danke, aber ich bin vertraut mit dem Konzept der optimistischen Sperren. Die Sache ist, dass JPA am Ende jeder Transaktion nach Änderungen sucht. Nun, das schützt vor schmutzigen Lesevorgängen, aber nur für die Zeit der Transaktion. Diese Sicherheit ist nicht vorhanden, wenn der Client Änderungen an Daten in seinem Browser vornimmt, da keine Transaktion sicherstellt, dass niemand sonst dasselbe Datenbit gleichzeitig ändert. – Wecherowski