繁体   English   中英

无法在 Spring 反应性 Redis 缓存中存储 Boolean

[英]Not able to Store Boolean in Spring Reactive Redis Cache

" java.lang.IllegalStateException: Cannot serialize value of type class java.lang.Boolean without a serializer
    at org.springframework.data.redis.serializer.DefaultRedisElementWriter.write(DefaultRedisElementWriter.java:54) ~[spring-data-redis-2.3.4.RELEASE.jar!/:2.3.4.RELEASE]
    at org.springframework.data.redis.serializer.RedisSerializationContext$SerializationPair.write(RedisSerializationContext.java:287) ~[spring-data-redis-2.3.4.RELEASE.jar!/:2.3.4.RELEASE]
    at org.springframework.data.redis.core.DefaultReactiveHashOperations.rawHashValue(DefaultReactiveHashOperations.java:286) ~[spring-data-redis-2.3.4.RELEASE.jar!/:2.3.4.RELEASE]

我在存储 Boolean 时遇到此异常。

我的 redis 配置:

ReactiveRedisTemplate<String, Object> reactiveRedisTemplateGeneric(ReactiveRedisConnectionFactory reactiveRedisConnectionFactory) {
    GenericJackson2JsonRedisSerializer valueSerializer = new GenericJackson2JsonRedisSerializer();
    RedisSerializationContext.RedisSerializationContextBuilder<String, Object> builder =
            RedisSerializationContext.newSerializationContext(new StringRedisSerializer());
    RedisSerializationContext<String, Object> context = builder.value(valueSerializer).build();
    return new ReactiveRedisTemplate<>(reactiveRedisConnectionFactory, context);
}

在构建上下文时,我们还需要在 hashValue 中设置序列化程序。

RedisSerializationContext<String, Object> context = builder.value(valueSerializer).hashValue(valueSerializer).build();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM