Hallo,
folgendes Szenario: Die Seite einer JSF-Anwendung wird mit dem Inhalt einer Datenbanktabelle unter Nutzung von Hibernate gefüllt. Die Daten der Tabelle sind sehr umfangreich und können mit einem Filter eingeschränkt werden. Die einzelnen Tabellenzeilen sind außerdem editierbar. Hierzu werden die Werte der ausgewählten Zeile auf einer neuen Seite dargestellt. Es existieren jeweils Buttons zum Speichern und Löschen des Eintrags. Das Problem ist, nachdem ein Eintrag gelöscht wurde, aktualisiert sich die View nicht von selbst, so daß der bereits gelöschte Eintrag nach Umleitung auf die Seite mit der Datenabfrage immer noch zu sehen ist. Als Zwischenlösung rufe ich direkt nach der delete()-Anweisung erneut createQuery() mit den Abfragekriterien auf. Diese Lösung ist aber nicht sehr effektiv und wirkt sich bei häufigen Abfragen negativ auf die Performance aus. Hibernate bietet da sicher elegantere Lösungen mit denen man sich zusätzliche Datenbankzugriffe nach einem INSERT/UPDATE/DELETE einsparen kann. Ich vermute das ich mit dem Query Cache und/oder 2nd Level Cache arbeiten muß, weiß aber nicht wie ich das nutzen soll, um damit mein DataModel für die Darstellung zu aktualisieren. Für hilfreiche Tipps (eventuell mit Code-Beispielen) wäre ich sehr dankbar.
folgendes Szenario: Die Seite einer JSF-Anwendung wird mit dem Inhalt einer Datenbanktabelle unter Nutzung von Hibernate gefüllt. Die Daten der Tabelle sind sehr umfangreich und können mit einem Filter eingeschränkt werden. Die einzelnen Tabellenzeilen sind außerdem editierbar. Hierzu werden die Werte der ausgewählten Zeile auf einer neuen Seite dargestellt. Es existieren jeweils Buttons zum Speichern und Löschen des Eintrags. Das Problem ist, nachdem ein Eintrag gelöscht wurde, aktualisiert sich die View nicht von selbst, so daß der bereits gelöschte Eintrag nach Umleitung auf die Seite mit der Datenabfrage immer noch zu sehen ist. Als Zwischenlösung rufe ich direkt nach der delete()-Anweisung erneut createQuery() mit den Abfragekriterien auf. Diese Lösung ist aber nicht sehr effektiv und wirkt sich bei häufigen Abfragen negativ auf die Performance aus. Hibernate bietet da sicher elegantere Lösungen mit denen man sich zusätzliche Datenbankzugriffe nach einem INSERT/UPDATE/DELETE einsparen kann. Ich vermute das ich mit dem Query Cache und/oder 2nd Level Cache arbeiten muß, weiß aber nicht wie ich das nutzen soll, um damit mein DataModel für die Darstellung zu aktualisieren. Für hilfreiche Tipps (eventuell mit Code-Beispielen) wäre ich sehr dankbar.