20 Temmuz 2023 Perşembe

HZHibernate

Giriş
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

THIRD-PARTY.txt Dosyası

Kullanılan harici kütüphanelerin sürümleri bu dosyada Dosyanın yolu şöyle hazelcast/licenses/THIRD-PARTY.txt