RedisTemplate.opsForZSet (). reverseRange возвращаемый тип не соответствует ожидаемому

У меня есть zset в redis, сохраняю все числа, например 11,22,33 ... и т.д., когда я использую

Set<Long> tops = redisTemplate.opsForZSet().reverseRange(key, 0, -1);

Я ожидаю, что возвращаемый тип будет Long, но он возвращает Integer.

Зачем??

какие-нибудь советы, как это решить ??

Какое у вас определение redistTemplate?

Mạnh Quyết Nguyễn 09.08.2018 12:18

@Autowired private RedisTemplate redisTemplate;

林永福 09.08.2018 12:22
1
2
334
1

Ответы 1

Что касается сигнатуры метода RedisTemplate # opsForZSet:

 public ZSetOperations<K,V> opsForZSet()

Он возвращает тот же тип значения (V), как определено в RedisTemplate.

Ваш метод возвращает Integer, потому что ваш RedisTemplate определяет Integer как значение.

Если требуется еще один RedisTemplate с целочисленным значением, вам следует подумать об определении другого RedisTemplate с длинным значением.

как это определить? вот так: RedisTemplate <String, Long>?

林永福 09.08.2018 12:24

да. Он должен быть длинным

Mạnh Quyết Nguyễn 09.08.2018 12:25

Другие вопросы по теме