Ich habe eine Entität mit benannter Abfrage.eclipselink Abfrage-Ergebnisse-Cache funktioniert nicht
@Entity(name = "MyEntity")
@Table(name = "mytable")
//@ReadOnly
@NamedQueries({
@NamedQuery(
name = "exampleFind",
query = "[..]",
hints = {@QueryHint(name= QueryHints.QUERY_RESULTS_CACHE, value= "TRUE")})
})
@Cacheable
@Cache(type = CacheType.FULL)
public class MyEntity {
Als ich diese Klasse mit @ReadOnly annotieren dann diese Abfrage nicht die Datenbank anstößt (verwendet nur Ergebnisse Cache), aber wenn ich @ReadOnly Anmerkung entfernen es führt immer SQL für Datenbank.
Wie kann dieser Cache ohne @ReadOnly aktiviert werden? Gibt es Einschränkungen beim Ergebniscache?
Ich benutze Eclipse 2.4.1
Danke. Leider hilft es nicht. Gibt es eine Möglichkeit, Caches in Eclipselink zu protokollieren/zu überwachen, um zu überprüfen, ob der Cache aktiviert ist oder wann er aktualisiert wird? Vielleicht wird dieser Cache jedes Mal ungültig gemacht und das ist der Grund, warum es immer eine SQL-Anfrage an die Datenbank gibt. – Mario
Sie können nach einzelnen Objekten fragen, wenn sie im geteilten Cache zwischengespeichert werden. . Dies kann mit dem IdentityMapAccessor geschehen: https://wiki.eclipse.org/EclipseLink/Examples/JPA/Caching. Es gibt viel mehr Leistungsmessung, aber ich habe diese noch nicht ausprobiert. Außerdem können Sie die Protokollierung für Eclipselink auf die feinsten Details in Ihrer persistence.xml einstellen – Thirler