首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >微Hibernate二级缓存

微Hibernate二级缓存
EN

Stack Overflow用户
提问于 2022-06-11 07:18:18
回答 1查看 143关注 0票数 0

我试图在客户端服务器模式下使用hazelcast启用Hibernate二级缓存。但是当我运行应用程序时,我会得到这个异常。

代码语言:javascript
复制
Caused by: java.lang.ClassNotFoundException: Could not load requested class : com.hazelcast.client.cache.impl.HazelcastClientCachingProvider
    at org.hibernate.boot.registry.classloading.internal.AggregatedClassLoader.findClass(AggregatedClassLoader.java:210)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    at java.base/java.lang.Class.forName0(Native Method)
    at java.base/java.lang.Class.forName(Class.java:398)
    at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:130)
    ... 49 common frames omitted

这是我的hibernate配置

代码语言:javascript
复制
jpa:
  default:
    properties:
      hibernate:
        cache:
          use_query_cache: false
          use_second_level_cache: true
          region:
            factory_class: com.hazelcast.client.cache.HazelcastClientCachingProvider

更新这是我的build.gradle

代码语言:javascript
复制
plugins {
    id("io.micronaut.application") version "$micronautAppVersion"
    id("com.google.cloud.tools.jib") version "$googleJibVersion"
    id "jacoco"
}

version = "0.1"

micronaut {
    runtime("netty")
    testRuntime("junit5")
    processing {
        incremental(true)
        annotations("com.test")
    }
}

dependencies {

    annotationProcessor "io.micronaut.data:micronaut-data-processor"
    annotationProcessor "io.micronaut:micronaut-http-validation"
    annotationProcessor "jakarta.persistence:jakarta.persistence-api"
    annotationProcessor "io.micronaut.openapi:micronaut-openapi"
    implementation "javax.inject:javax.inject"
    implementation "io.micronaut:micronaut-http-client"
    implementation "io.micronaut:micronaut-runtime"
    implementation "io.micronaut.data:micronaut-data-hibernate-jpa"
    implementation "io.micronaut.sql:micronaut-hibernate-jpa"
    implementation "io.micronaut:micronaut-validation"
    implementation "javax.annotation:javax.annotation-api"
    implementation("javax.inject:javax.inject:1")
    implementation('io.micronaut.cache:micronaut-cache-hazelcast')
    runtimeOnly "io.micronaut.sql:micronaut-jdbc-hikari"
}
EN

回答 1

Stack Overflow用户

发布于 2022-07-02 22:01:26

HazelcastClientCachingProvider是一个客户机,它意味着它没有任何自己的缓存,它只能与另一个缓存服务器通信(实际上,建议使用jcache作为标准的Java,而不是特定于提供者的客户端)。

Micronaut不会通过包含依赖项来自动启动缓存服务器。你得把它配置成像这样

或者,您可以使用hibernate配置直接配置嵌入式缓存:

代码语言:javascript
复制
hibernate:
    cache:
      region:
        factory_class: jcache
    javax:
      cache:
        provider: com.hazelcast.cache.impl.HazelcastServerCachingProvider
        uri: <HazelcastConfig.xml>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72582443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档