public class HibernateTransactionalAccessStrategy extends HibernateAccessStrategyAdapter
It is supposed that this strategy is used in JTA environment and Hibernate and
IgniteInternalCache corresponding to the L2 cache region are configured to use the same transaction manager.
Configuration of L2 cache and per-entity cache access strategy can be set 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 entity. -->
<mapping class="com.example.Entity"/>
<!-- Enable L2 cache with transactional access strategy for entity. -->
<class-cache class="com.example.Entity" usage="transactional"/>
</hibernate-configuration>
Also cache access strategy can be set using annotations:
@javax.persistence.Entity
@javax.persistence.Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.TRANSACTIONAL)
public class Entity { ... }
cache, ignite, log| Modifier and Type | Method and Description |
|---|---|
boolean |
afterInsert(Object key,
Object val)
Called after Hibernate inserted object in the database and transaction successfully completed.
|
boolean |
afterUpdate(Object key,
Object val)
Called after Hibernate updated object in the database and transaction successfully completed.
|
@Nullable Object |
get(Object key) |
boolean |
insert(Object key,
Object val)
Called after Hibernate inserted object in the database but before transaction completed.
|
void |
lock(Object key)
Called during database transaction execution before Hibernate attempts to update or remove given key.
|
void |
putFromLoad(Object key,
Object val)
Puts in cache value loaded from the database.
|
void |
remove(Object key)
Called after Hibernate removed object from database but before transaction completed.
|
void |
unlock(Object key)
Called after Hibernate failed to update or successfully removed given key.
|
boolean |
update(Object key,
Object val)
Called after Hibernate updated object in the database but before transaction completed.
|
evict, evict, evictAll, evictAll, lockRegion, putFromLoad, removeAll, unlockRegion@Nullable public @Nullable Object get(Object key)
get in class HibernateAccessStrategyAdapterkey - Key.public void putFromLoad(Object key, Object val)
putFromLoad in class HibernateAccessStrategyAdapterkey - Key.val - Value.public void lock(Object key)
lock in class HibernateAccessStrategyAdapterkey - Key.public void unlock(Object key)
unlock in class HibernateAccessStrategyAdapterkey - Key.public boolean update(Object key, Object val)
update in class HibernateAccessStrategyAdapterkey - Key.val - Value.True if operation updated cache.public boolean afterUpdate(Object key, Object val)
afterUpdate in class HibernateAccessStrategyAdapterkey - Key.val - Value.True if operation updated cache.public boolean insert(Object key, Object val)
insert in class HibernateAccessStrategyAdapterkey - Key.val - Value.True if operation updated cache.public boolean afterInsert(Object key, Object val)
afterInsert in class HibernateAccessStrategyAdapterkey - Key.val - Value.True if operation updated cache.public void remove(Object key)
remove in class HibernateAccessStrategyAdapterkey - Key,
GridGain In-Memory Computing Platform : ver. 8.9.26 Release Date : October 16 2025