Meine Java-App fragt mysql Server für eine Abfrage alle 10 Sekunden.
Ich füge manuell eine neue Zeile in die Tabelle ein.
Und Hibernate kann es nicht finden.
Wenn ich eine Zeile manuell lösche, zeigt Hibernate an, dass diese Zeile existiert.
Ich schlage vor, dass es wegen Zwischenspeicherung im Ruhezustand ist.
Gibt es eine Möglichkeit, es überhaupt zu deaktivieren?
Danke!
Meinst du den First-Level-Cache oder den Second-Level-Cache? Einen Hibernate Second-Level-Cache wie Ehcache zu haben Das Zwischenspeichern von Entitäten, die den Zeilen in derselben Tabelle entsprechen, die Sie manuell ändern, kann das von Ihnen beschriebene Verhalten verursachen. Der Cache der ersten Ebene würde dieses Verhalten nicht verursachen, und ich glaube nicht, dass Sie es sowieso deaktivieren können.
Um den Hibernate-Cache der zweiten Ebene zu deaktivieren, entfernen Sie aus der Hibernate-Konfigurationsdatei hibernate-cfg.xml
alle Zeilen, die auf den Cache der zweiten Ebene verweisen. Zum Beispiel:
Um zu versuchen, den Cache der ersten Ebene zu deaktivieren, entferne ich ihn jedes Mal, wenn ein EntityManager angefordert wird. hat für mich gearbeitet;)
%Vor%Tags und Links hibernate