Исключение со стороны класса: кэширование RedisJAVA

Программисты JAVA общаются здесь
Anonymous
Исключение со стороны класса: кэширование Redis

Сообщение Anonymous »

Реализация кэширования Redis в Java Springboot. Получение этой ошибки
class java.util.linkedhashmap нельзя поднять на класс com.campus.quizapp.dto.interviewdatedto (java.util.linkedhashmap находится в модуле java.base of unnamed in un -bootstrap 'app') < /p>
Это метод, который я кэширую на < /p>
@Override
@Cacheable(value = "quizStatusCache", key = "#jobId")
public QuizStatusDTO getQuizStatusByJobId(Long jobId) {
log.info("++++++++++++++++");
QuizStatusDTO status = new QuizStatusDTO();
Optional quizOpt = quizRepository.findByJobId(jobId);

if (quizOpt.isPresent()) {
QuizEntity quiz = quizOpt.get();
boolean isActive = quiz.isActive() && (quiz.getEndDay() == null || quiz.getEndDay().after(new Date()));
status.setActive(isActive);
status.setEndDate(quiz.getEndDay());

logger.debug("Quiz status for jobId {}: active={}, endDate={}",
jobId, isActive, quiz.getEndDay());
} else {
status.setActive(false);
status.setEndDate(null);
logger.debug("No quiz found for jobId {}", jobId);
}

return status;
}
< /code>
Это файл конфигурации < /p>
@Configuration
@EnableCaching
public class RedisConfig {

@Value("${spring.redis.host}")
private String redisHost;

@Value("${spring.redis.port}")
private int redisPort;

@Bean
public LettuceConnectionFactory redisConnectionFactory() {
RedisStandaloneConfiguration config = new RedisStandaloneConfiguration(redisHost, redisPort);
return new LettuceConnectionFactory(config);
}

@Bean
public ObjectMapper objectMapper() {
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JavaTimeModule());

return mapper;
}

@Bean
public GenericJackson2JsonRedisSerializer genericJackson2JsonRedisSerializer(ObjectMapper objectMapper) {
return new GenericJackson2JsonRedisSerializer(objectMapper);
}

@Bean
public RedisTemplate redisTemplate(RedisConnectionFactory connectionFactory,
GenericJackson2JsonRedisSerializer serializer) {
RedisTemplate template = new RedisTemplate();
template.setConnectionFactory(connectionFactory);
template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(serializer);
template.setHashKeySerializer(new StringRedisSerializer());
template.setHashValueSerializer(serializer);
return template;
}

@Bean
public CacheManager cacheManager(RedisConnectionFactory connectionFactory,
GenericJackson2JsonRedisSerializer serializer) {
RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig()
.entryTtl(Duration.ofMinutes(20)) // Global TTL of 20 minutes
.serializeValuesWith(
RedisSerializationContext.SerializationPair.fromSerializer(serializer)
);

return RedisCacheManager.builder(connectionFactory)
.cacheDefaults(config)
.build();
}
}
< /code>
ожидаемый выход < /p>
{
"active": false,
"endDate": 1743771000000
}


Подробнее здесь: https://stackoverflow.com/questions/796 ... is-caching

Вернуться в «JAVA»