Deaktivieren Sie den Hibernate -Cache für eine bestimmte Abfrage
Posted: 14 Feb 2025, 13:26
Ich verwende Hibernate (3.6.0) für Standard -Entitätszuordnung sowie ein paar direkte 'statistische' SQL -Abfragen. Haben Sie die gleichen Daten "Form", dh die gleichen Felder stellen jedoch sehr unterschiedliche Informationsstücke basierend auf ihrer Quelltabelle und Parametern dar. > Verwenden Sie dieselbe Bean. P>
Jetzt ist der Hibernate, da zwei verschiedene Abfragen an dieselbe Bean geordnet sind, es für klug, die Ergebnisse der ersten Abfrage zu leiten, und diese Ergebnisse für die zweite völlig andere Abfrage zurückzugeben. < /p>
Ich habe versucht, Folgendes zu machen: < /p>
[*] am frühesten Punkt in der Sitzung
[*] Beim Erstellen der Abfrage
[*] Beim Erstellen der Abfrage
@Cacheable(value = false)< /code> als Annotation im Entitätsobjekt < /li>
< /ol>
Ich habe nur festgestellt /Code> Eine String -Verkettung sowohl der Definitionsabfrage -Quellentabelle als auch der Parameter. Dies ist offensichtlich nicht ideal. < /p>
Und gibt es eine bessere Möglichkeit, den Winterschlaf zu sagen>
Jetzt ist der Hibernate, da zwei verschiedene Abfragen an dieselbe Bean geordnet sind, es für klug, die Ergebnisse der ersten Abfrage zu leiten, und diese Ergebnisse für die zweite völlig andere Abfrage zurückzugeben. < /p>
Ich habe versucht, Folgendes zu machen: < /p>
[*]
Code: Select all
session.setCacheMode(CacheMode.IGNORE);
[*]
Code: Select all
qry.setCacheable(false);
[*]
Code: Select all
qry.setCacheMode(CacheMode.IGNORE);
@Cacheable(value = false)< /code> als Annotation im Entitätsobjekt < /li>
< /ol>
Ich habe nur festgestellt /Code> Eine String -Verkettung sowohl der Definitionsabfrage -Quellentabelle als auch der Parameter. Dies ist offensichtlich nicht ideal. < /p>
Und gibt es eine bessere Möglichkeit, den Winterschlaf zu sagen>