Bu proje idame ettiriliyor mu bilmiyorum. En son Hibernate 5.X sürümünde kalmış. Hibernate region factory olarak şu sınıflar kullanılabilir
1. HazelcastCacheRegionFactory
Şu satırı dahil ederiz
import com.hazelcast.hibernate.HazelcastCacheRegionFactory;
Second Level Cache verisini IMap üzerinde saklar. Bunu sağlayan sınıf IMapRegionCache
Kalıtım şöyle
org.hibernate.cache.spi.Region
com.hazelcast.hibernate.RegionCache
com.hazelcast.hibernate.distributed.IMapRegionCache
application.properties dosyasında şöyle yaparız
# HIBERNATE 2 LEVEL CACHE # enable selective caching mode - only entities with @Cacheable annotation will use L2 cache spring.jpa.properties.javax.persistence.sharedCache.mode=ENABLE_SELECTIVE spring.jpa.properties.hibernate.cache.use_second_level_cache: true spring.jpa.properties.hibernate.cache.region.factory_class: com.hazelcast.hibernate.HazelcastCacheRegionFactory
1 Key olarak org.hibernate.cache.internal.BasicCacheKeyImplementation kullanılıyor
2. Value olarak ta sanırım eğer kendi tarafımda value nesnesi yoksa "com.hazelcast.nio.serialization.HazelcastSerializationException : No DataSerializerFactory registered for namespace: ..." hatası alırım
2. HazelcastLocalCacheRegionFactory
Second Level Cache verisini yerel bilgisayarda saklar. Bir şekilde arkada ITopic kullanıyor
Entity
Örnek
Şöyle yaparız. O zaman country isimli bir IMap oluşturur. Veri HeapData tipindendir
import org.hibernate.annotations.Cache;import org.hibernate.annotations.CacheConcurrencyStrategy;@Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region="country")public class Country {...}
Eğer region ismi vermezsek sınıfın tam yolunu kullanır. Yani IMap ismi IMap com.colak.hzspringtutorial.hibernatecache.Country gibi bir şey olur
3. JCache
Açıklaması şöyle
Hazelcast provides three CachingProvider implementations:- A member-side implementation: the CacheManagers created by this provider are backed by member-side HazelcastInstances.- A client-side implementation: the CacheManagers created by this provider are backed by client-side HazelcastInstances.- A delegating caching provider that can be configured to delegate to the member- or client-side implementation.
Kalıtım şöyle
javax.cache.spi.CachingProvider // Client veya Member'a delegating Caching provider com.hazelcast.cache.HazelcastCachingProvider // Client'a delegating Caching provider com.hazelcast.client.cache.HazelcastClientCachingProvider // Member'a delegating Caching provider com.hazelcast.client.cache.HazelcastMemberCachingProvider
JCache CachingProvider gerçekleştirim ise şöyle
javax.cache.spi.CachingProvider com.hazelcast.cache.impl.AbstractHazelcastCachingProvider // com.hazelcast.client.cache.impl.HazelcastClientCacheManager yaratır com.hazelcast.client.cache.impl.HazelcastClientCachingProvider // com.hazelcast.client.cache.impl.HazelcastServerCacheManager yaratır com.hazelcast.cache.impl.HazelcastServerCachingProvider
Bu sınıflar JCache CacheManager nesneleri dönerler. Kalıtım şöyle
javax.cache.CacheManager com.hazelcast.cache.HazelcastCacheManager com.hazelcast.cache.impl.AbstractHazelcastCacheManager com.hazelcast.client.cache.impl.HazelcastClientCacheManager com.hazelcast.client.cache.impl.HazelcastServerCacheManager
Tüm CacheManager nesneleri altta aslında ICache arayüzünü kullanıyorlar
1. HazelcastClientCachingProvider - JCache
Örnek
Şöyle yaparız. Burada hazelcast.jcache.provider.type alanı member veya client değerlerini alabilir. member değeri atayarak yeni bir embedded member yaratması veya mevcut olanı kullanması sağlanıyor.
hazelcast.jcache.provider.type=member hibernate.cache.region.factory_class=jcache hibernate.cache.use_second_level_cache=true
2. HazelcastClientCachingProvider - JCache
Hazelcast cluster'a bağlanır
Örnek
Şöyle yaparız
jpa: default: properties: hibernate: cache: use_query_cache: false use_second_level_cache: true region: factory_class: com.hazelcast.client.cache.HazelcastClientCachingProvider
3. HazelcastServerCachingProvider - JCache
Embedded cache başlatır
Örnek
Şöyle yaparız
hibernate: cache: region: factory_class: jcache javax: cache: provider: com.hazelcast.cache.impl.HazelcastServerCachingProvider uri: <HazelcastConfig.xml>
Hiç yorum yok:
Yorum Gönder