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.HazelcastServerCachingProviderBu 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.HazelcastServerCacheManagerTü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.HazelcastClientCachingProvider3. 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