Caching von Queries
Wie bereits bei Caching von EJB3 EntityBeans geschrieben, können diese im JBoss gecached werden. Zusätzlich ist es auch möglich häufige Datenbankabfragen zu cachen. Wenn man den JBoss und seine persistence.xml gemäß der Anleitung ist automatisch alles für das Caching von Abfragen eingestellt.
Jetzt muss bei einer Abfrage lediglich das Attribute CacheAble gesetzt werden:
Criteria crit = session.createCriteria(Entity.class); crit.setCacheable(true);
Zusätzlich kann auch noch mit setCacheRegion die CacheRegion im TreeCache gesetzt werden.
Bei der Verwendung von ResultTransformer muss noch die Referenz beachtet werden. Der Transformer wird als Parameter mit verwendet und muss für ein erfolgreiches Caching daher immer der Gleiche sein. Unter dem Interface “Criteria” werden verschiedene Transformer angeboten. Z.B. unter Criteria.DISTINCT_ROOT_ENTITY der DistinctRootEntityResultTransformer.