Hibernate Second-Level-Cache << >> net.sf.ehcache.hibernate.EhCacheProvider
-
06-07-2019 - |
Frage
Ich mag Cache zweite Ebene in meinem Hibernate-Projekt verwenden, aber ich weiß, nur ein wenig über Second-Level-Cache-Ruhezustand, kann jemand erklären, wie shoud ich diese verwende in meinem Code und welche Konfiguration und .jar-Datei, die ich brauche? Ich habe diese Einstellung meiner hibernate.cfg.xml Datei
<property name="hibernate.cache.use_query_cache">true</property>
<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="hibernate.cache.provider_class">net.sf.ehcache.hibernate.EhCacheProvider</property>
und fügen Sie diese JAR-Datei ehcache-1.6.1.jar, ehcache-1.6.1-javadoc.jar, ehcache-1.6.1-sources.jar
Ich möchte wissen, shoud ich andere Konfiguration ändern?
und wie kann ich verstehen, dass mein Projekt Second-Level-Cache verwendet?
, wenn nur diese Einstellung setzen, Hibernate automatisch verwenden oder muß ich ant anderen Code in meiner .java-Klasse verwenden (wie jede Anmerkung oder etwas anderes)
Lösung
Die Anmerkung Sie suchen ist org.hibernate.annotations.Cache . Die grundsätzliche Verwendung ist:
@Entity
@Cache(usage=CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public MyEntity {
...
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public List<ElementType> getSomeCollection() {
...
}
}
Für Fragen, benötigen Sie href="http://docs.jboss.org/hibernate/stable/core/reference/en/html/performance.html#performance-querycache" rel="noreferrer"> zum aktivieren, indem hibernate.cache.use_query_cache
Eigenschaft auf true setzen und angeben, dass Abfrage in seiner Erklärung zwischenspeicherbar ist (für benannte Abfragen) oder durch setCacheable(true)
auf Abfrage-Instanz aufrufen.
Alles, was gesagt, Sie müssen wirklich vorsichtig sein mit Caching und wirklich verstehen, , was du tust, sonst wird es mehr schaden als helfen. Sie es nicht so aus, als „schnelle Lösung.“ - das Caching alles, zum Beispiel, ist auf jeden Fall die falsche Sache zu tun
Andere Tipps
Ihre Einstellungen werden das Second-Level-und Abfrage-Cache-Speicher in Ihrem Projekt für den Einsatz machen, aber Sie müssen es immer noch für bestimmte Einrichtungen, Sammlungen ermöglichen, und Abfragen. Dies erfordert einige sorgfältige Planung, weil es Kompromisse sind, die Sie benötigen zu verstehen. Im Allgemeinen ist das Second-Level-und Abfrage-Cache-Speicher geeignet für schreibgeschützt oder schreib meist Daten, aber keine flüchtigen Daten. Wenn Sie noch nicht besitzen, würde ich empfehlen, eine Kopie von Java Persistence mit Hibernate Abholung . Es hat eine sehr gute Behandlung des Themas.