public class HibernateCollectionRegion extends HibernateTransactionalDataRegion
CollectionRegion
. This region is used to store collection data.
L2 cache for collection can be enabled in the Hibernate configuration file:
<hibernate-configuration> <!-- Enable L2 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 entities. --> <mapping class="com.example.Entity"/> <mapping class="com.example.ChildEntity"/> <!-- Enable L2 cache with nonstrict-read-write access strategy for entities and collection. --> <collection-cache collection="com.example.Entity" usage="nonstrict-read-write"/> <collection-cache collection="com.example.ChildEntity" usage="nonstrict-read-write"/> <collection-cache collection="com.example.Entity.children" usage="nonstrict-read-write"/> </hibernate-configuration>Also cache for collection can be enabled using annotations:
@javax.persistence.Entity public class Entity { ... @javax.persistence.OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER) @javax.persistence.JoinColumn(name="PARENT_ID") @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) public List<ChildEntity> getChildren() {...} }Note: the collection cache does not cache the state of the actual entities in the cache, it caches only identifier values. For this reason, the collection cache should always be used in conjunction with the second-level cache for those entities expected to be cached as part of a collection cache.
cache, ignite
Constructor and Description |
---|
HibernateCollectionRegion(HibernateRegionFactory factory,
String name,
Ignite ignite,
HibernateCacheProxy cache,
CacheDataDescription dataDesc) |
Modifier and Type | Method and Description |
---|---|
CollectionRegionAccessStrategy |
buildAccessStrategy(org.hibernate.cache.spi.access.AccessType accessType) |
getCacheDataDescription, isTransactionAware
clear, destroy, getElementCountInMemory, getElementCountOnDisk, getSizeInMemory
public HibernateCollectionRegion(HibernateRegionFactory factory, String name, Ignite ignite, HibernateCacheProxy cache, CacheDataDescription dataDesc)
factory
- Region factory.name
- Region name.ignite
- Grid.cache
- Region cache.dataDesc
- Region data description.
GridGain In-Memory Computing Platform : ver. 8.9.14 Release Date : November 5 2024