[REDIS] 레디 스 - 어떻게 구성 사용자 정의 변환에
REDIS레디 스 - 어떻게 구성 사용자 정의 변환에
봄 - 데이터 - 레디 스에서, 우리는 어떻게 자동 유선 / 봄 부팅 응용 프로그램 또는 구성에서 주입 할 수있는 사용자 지정 컨버터를 구성 할 필요가 없습니다.
나는 봄의 데이터 레디 스 문서에서 @ReadingConverter 및 @WritingConverter 읽어보십시오. 이 문서에서, 그들을 구성하는 방법에 대한 명확하지 않다. https://github.com/spring-projects/spring-data-redis/blob/master/src/main/asciidoc/reference/redis-repositories.adoc#redis.repositories.indexes
사람이 그것을 수행하는 방법을 알고 있나요?
해결법
-
==============================
1.당신은 당신의 응용 프로그램 구성에 CustomConversions 콩 명 "redisCustomConversions"를 선언해야합니다.
당신은 당신의 응용 프로그램 구성에 CustomConversions 콩 명 "redisCustomConversions"를 선언해야합니다.
@Bean public CustomConversions redisCustomConversions(){ return new CustomConversions(Arrays.asList(new YourWritingConverter(), new YourReadingConverter())); }
-
==============================
2.스프링 부팅 스타터 - 데이터 - 레디 스 테스트 : 2.0.4.RELEASE. 나는 CrudRepository를 사용하는 경우 내 @RedisHash 기업의 내 OffsetDateTime 속성이 저장되는되지 않은 문제에 직면했다. 문제는 Jsr310Converters가 OffsetDateTime의 컨버터가없는 것이 었습니다. 이 문제를 해결하기 위해, 나는 독서 컨버터를 만들어 : @구성 요소 @ReadingConverter 공용 클래스 BytesToOffsetDateTimeConverter 구현 변환기 <바이트 [] OffsetDateTime> { @우세하다 공개 OffsetDateTime 변환 (최종 바이트 [] 소스) { 반환 OffsetDateTime.parse (새로운 String (소스), DateTimeFormatter.ISO_OFFSET_DATE_TIME); } } 컨버터를 작성 : @구성 요소 @WritingConverter 공용 클래스 OffsetDateTimeToBytesConverter 구현 변환기
{ @우세하다 공개 바이트 [] 변환 (최종 OffsetDateTime 소스) { 반환 source.format (DateTimeFormatter.ISO_OFFSET_DATE_TIME) .getBytes (); } } 그리고 구성의 RedisCustomConversions 콩 등록 : 수입 org.springframework.context.annotation.Bean; 수입 org.springframework.context.annotation.Configuration; 수입 org.springframework.data.redis.core.convert.RedisCustomConversions; 수입 org.springframework.data.redis.repository.configuration.EnableRedisRepositories; 수입 java.util.Arrays; @Configuration @EnableRedisRepositories 공용 클래스 RedisConfiguration { @콩 공공 RedisCustomConversions의 redisCustomConversions (OffsetDateTimeToBytesConverter offsetToBytes, BytesToOffsetDateTimeConverter bytesToOffset) { 새로운 RedisCustomConversions를 반환 (Arrays.asList (offsetToBytes, bytesToOffset)); } } 스프링 부팅 스타터 - 데이터 - 레디 스 테스트 : 2.0.4.RELEASE. 나는 CrudRepository를 사용하는 경우 내 @RedisHash 기업의 내 OffsetDateTime 속성이 저장되는되지 않은 문제에 직면했다. 문제는 Jsr310Converters가 OffsetDateTime의 컨버터가없는 것이 었습니다. 이 문제를 해결하기 위해, 나는 독서 컨버터를 만들어 : @구성 요소 @ReadingConverter 공용 클래스 BytesToOffsetDateTimeConverter 구현 변환기 <바이트 [] OffsetDateTime> { @우세하다 공개 OffsetDateTime 변환 (최종 바이트 [] 소스) { 반환 OffsetDateTime.parse (새로운 String (소스), DateTimeFormatter.ISO_OFFSET_DATE_TIME); } } 컨버터를 작성 : @구성 요소 @WritingConverter 공용 클래스 OffsetDateTimeToBytesConverter 구현 변환기
{ @우세하다 공개 바이트 [] 변환 (최종 OffsetDateTime 소스) { 반환 source.format (DateTimeFormatter.ISO_OFFSET_DATE_TIME) .getBytes (); } } 그리고 구성의 RedisCustomConversions 콩 등록 : 수입 org.springframework.context.annotation.Bean; 수입 org.springframework.context.annotation.Configuration; 수입 org.springframework.data.redis.core.convert.RedisCustomConversions; 수입 org.springframework.data.redis.repository.configuration.EnableRedisRepositories; 수입 java.util.Arrays; @Configuration @EnableRedisRepositories 공용 클래스 RedisConfiguration { @콩 공공 RedisCustomConversions의 redisCustomConversions (OffsetDateTimeToBytesConverter offsetToBytes, BytesToOffsetDateTimeConverter bytesToOffset) { 새로운 RedisCustomConversions를 반환 (Arrays.asList (offsetToBytes, bytesToOffset)); } } -
==============================
3.이 코드는 사람을 도움이 될 수 있습니다. 감사합니다 @Mikhail
이 코드는 사람을 도움이 될 수 있습니다. 감사합니다 @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 }
스프링 데이터 레디 스-1.8.4.RELEASE 테스트
from https://stackoverflow.com/questions/42915576/redis-how-to-configure-custom-conversions by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] nodejs, 레디 스. 키가 존재하는지 확인하고 새하지 않을 경우 생성 (0) | 2020.01.08 |
---|---|
[REDIS] 레디 스 클러스터에서 루아를 사용하거나 난 그냥 해시 태그를 전달할 수 있습니다 때 전체 키 이름을 지정해야 하는가? (0) | 2020.01.08 |
[REDIS] StackExchange.Redis의 주요 패턴으로 값을 가져옵니다 (0) | 2020.01.08 |
[REDIS] 어떻게 파이썬 레디 스에서 플러시 레디 스에 DB합니까? (0) | 2020.01.08 |
[REDIS] 태그 캐시와 같은 뭔가 및 레디 스를 사용하여 제안을 위해 그것을 쿼리 (0) | 2020.01.08 |