Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

540
Visualizações
Redis - Cómo configurar conversiones personalizadas

En spring-data-redis, ¿cómo necesitamos configurar convertidores personalizados que se puedan conectar/inyectar automáticamente desde la configuración o la aplicación de arranque de Spring?

Leí sobre @ReadingConverter y @WritingConverter en la documentación de Spring Data Redis. A partir de esta documentación, no está claro cómo configurarlos. https://github.com/spring-projects/spring-data-redis/blob/master/src/main/asciidoc/reference/redis-repositories.adoc#redis.repositories.indexes

Alguien sabe como hacerlo?

about 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Probado con spring-boot-starter-data-redis:2.0.4.RELEASE .

Me enfrentaba a un problema en el que mis propiedades OffsetDateTime de mi entidad @RedisHash no se almacenaban al usar CrudRepository .

El problema fue que Jsr310Converters no tiene un convertidor de OffsetDateTime .

Para resolver esto, creé un convertidor de lectura:

 @Component @ReadingConverter public class BytesToOffsetDateTimeConverter implements Converter<byte[], OffsetDateTime> { @Override public OffsetDateTime convert(final byte[] source) { return OffsetDateTime.parse(new String(source), DateTimeFormatter.ISO_OFFSET_DATE_TIME); } }

y convertidor de escritura:

 @Component @WritingConverter public class OffsetDateTimeToBytesConverter implements Converter<OffsetDateTime, byte[]> { @Override public byte[] convert(final OffsetDateTime source) { return source.format(DateTimeFormatter.ISO_OFFSET_DATE_TIME).getBytes(); } }

Y registró un bean RedisCustomConversions en la configuración:

 import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.core.convert.RedisCustomConversions; import org.springframework.data.redis.repository.configuration.EnableRedisRepositories; import java.util.Arrays; @Configuration @EnableRedisRepositories public class RedisConfiguration { @Bean public RedisCustomConversions redisCustomConversions(OffsetDateTimeToBytesConverter offsetToBytes, BytesToOffsetDateTimeConverter bytesToOffset) { return new RedisCustomConversions(Arrays.asList(offsetToBytes, bytesToOffset)); } }
about 4 years ago · Santiago Trujillo Relatório

0

Debe declarar el bean CustomConversions llamado "redisCustomConversions" en la configuración de su aplicación.

 @Bean public CustomConversions redisCustomConversions(){ return new CustomConversions(Arrays.asList(new YourWritingConverter(), new YourReadingConverter())); }
about 4 years ago · Santiago Trujillo Relatório

0

Estos códigos pueden ayudar a cualquiera. Gracias @Mikhail

 @Component public class RedisObjectHelper { @Resource private RedisTemplate<String, ?> redisTemplate; private HashOperations<String, byte[], byte[]> hashOperations; private HashMapper<Object, byte[], byte[]> mapper; @PostConstruct public void init() { mapper = new ObjectHashMapper(new CustomConversions(Arrays.asList(new Timestamp2ByteConverter(), new Byte2TimestampConverter()))); hashOperations = redisTemplate.opsForHash(); } // and any methods }

probado con spring-data-redis-1.8.4.RELEASE

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda