Hallo allerseits,
ich bin kein Hibernate-Experte und würde vermuten, dass ich nicht der erste bin, der diese Frage stellt. Habe mir über den Cache-Mechanismus gelesen, aber weder dabei noch über die Suche etwas passendes gefunden.
Es geht um die Synchronisation bzw. das Caching von der n-Seite bei 1:n-Relationen. Am besten lässt sich das wohl an einem Beispiel verdeutlichen:
Angenommen, wir haben zwei Relationen:
Code:
class Event {
int id;
int eventTypeId;
EventType eventType;
// ... other fields
}
class EventType {
int id;
Collection<Event> events;
// ... other fields
}
Es gibt also eine 1:n-Beziehung zwischen EventType und Event. EventType ist die 1-Seite, Event ist die n-Seite.
Nun passiert folgendes:
(1) Wir holen ein EventType aus der DB inkl. der anhängigen Events.
(2) Ein anderer Benutzer entfernt nun ein Event aus der DB, welches zum vorher geholten EventType gehörte.
(3) An dieser Stelle ist ja ein Event in der events-Collection des in
(1) geholten EventTypes enthalten, das gar nicht mehr existiert, da es ja in
(2) entfernt wurde.
Wie sieht es denn bei Hibernate mit Caching/Synchronisierung aus, um das in
(3) auftretende Problem zu vermeiden?
Wäre für jeden Hinweis dankbar... :-)
Beste Grüße,
code76