Unser Entwurf hat eine jvm, die eine jboss/webapp (lesen/schreiben) ist, die verwendet wird, um die Daten über Hibernate (mit jpa) an die db zu pflegen. Das Modell verfügt über 10-15 persistente Klassen mit 3-5 Tiefenstufen in den Beziehungen.Wie kann die Hibernate-Cache-Konsistenz beibehalten werden, indem zwei Java-Anwendungen ausgeführt werden?
Wir haben dann eine separate jvm, die der Server mit diesen Daten ist. Da es kontinuierlich läuft, haben wir nur eine lange db Sitzung (nur lesen).
Es ist derzeit kein intra-jvm-Cache vorhanden - also signalisieren wir manuell einen jvm von dem anderen.
Wenn der Webapp einige Daten ändert, signalisiert er dem Server, die geänderten Daten neu zu laden. Was wir herausgefunden haben, ist, dass wir Hibernate mitteilen müssen, dass die Daten gelöscht und dann neu geladen werden sollen. Ein Fetch/Merge mit der db macht den Job nicht - hauptsächlich in Bezug auf die Objekte, die mehrere Ebenen in der Hierarchie sind.
Irgendwelche Gedanken darüber, ob irgendetwas grundsätzlich falsch mit diesem Design ist oder ob jemand dies tut und mehr Glück beim Arbeiten mit Hibernate beim Reload hatte.
Danke, Chris
JPA verwenden, und @PersistenceContext die EntityManager zu bekommen - aber es scheint, dass wir @PersistenceUnit für eine EntityManagerFactory benötigen und die Daten zu aktualisieren, haben wir einen neuen EntityManager bekommen. Hört sich gut an - aber auf die schwerste Art, Dinge auf den neuesten Stand zu bringen, aber wenn das die Leute machen ... –