public class IgniteQueryResultsRegion extends IgniteGeneralDataRegion implements org.hibernate.cache.spi.QueryResultsRegion
QueryResultsRegion
. This region is used to store query results.
Query results caching can be enabled in the Hibernate configuration file:
<hibernate-configuration> <!-- Enable L2 cache. --> <property name="cache.use_second_level_cache">true</property> <!-- Enable query cache. --> <property name="cache.use_second_level_cache">true</property> <!-- Use Ignite as L2 cache provider. --> <property name="cache.region.factory_class">org.apache.ignite.cache.hibernate.HibernateRegionFactory</property> <!-- Specify entity. --> <mapping class="com.example.Entity"/> <!-- Enable L2 cache with nonstrict-read-write access strategy for entity. --> <class-cache class="com.example.Entity" usage="nonstrict-read-write"/> </hibernate-configuration>By default queries are not cached even after enabling query caching, to enable results caching for a particular query, call
Query.setCacheable(boolean)
:
Session ses = getSession(); Query qry = ses.createQuery("..."); qry.setCacheable(true); // Enable L2 cache for query.Note: the query cache does not cache the state of the actual entities in the cache, it caches only identifier values. For this reason, the query cache should always be used in conjunction with the second-level cache for those entities expected to be cached as part of a query result cache
cache, ignite
构造器和说明 |
---|
IgniteQueryResultsRegion(HibernateRegionFactory factory,
String name,
Ignite ignite,
HibernateCacheProxy cache) |
clear, getFromCache, putIntoCache
destroy, getElementCountInMemory, getElementCountOnDisk, getSizeInMemory
public IgniteQueryResultsRegion(HibernateRegionFactory factory, String name, Ignite ignite, HibernateCacheProxy cache)
factory
- Region factory.name
- Region name.ignite
- Grid.cache
- Region cache.
Follow @ApacheIgnite
Ignite Database and Caching Platform : ver. 2.8.0-SNAPSHOT Release Date : 四月 9 2019