получить возвращаемый null с сервера когерентности

У меня есть некоторые данные в моей базе данных кеша, когда я получаю доступ к базе данных кеша, если ключ содержит алфавиты и цифры или комбинацию цифр, я могу получить данные, если это один ключ только с цифрами, я не могу в состоянии получить данные, даже если я могу просматривать данные в списке.

Map (ele): list
2222222 = 
200:20:2:2:1:1:Thu Feb 02 00:00:00 2012:2:Thu Feb 02 00:00:00 2012:Thu Feb 02 00:00:00 2012

GC2 = 
200:20:2:2:1:1:Thu Feb 02 00:00:00 2012:2:Thu Feb 02 00:00:00 2012:Thu Feb 02 00:00:00 2012

Map (ele): get GC2
 200:20:2:2:1:1:Thu Feb 02 00:00:00 2012:2:Thu Feb 02 00:00:00 2012:Thu Feb 02 00:00:00 2012

Map (ele): get 2222222
null

Когда я даю только цифры в get, я получаю null.

Любые идеи?


person Abi    schedule 26.03.2013    source источник


Ответы (1)


Я сам разобрался, если мы определим ключ типа String и он содержит только цифры из-за внутренней работы сервера когерентности, он возвращает null.

короче говоря

ключ определен как строка - ключ содержит буквенно-цифровые символы - РАБОТАЕТ

ключ определен как строка - ключ содержит только алфавиты - РАБОТАЕТ

ключ определен как строка - ключ содержит только цифры - НЕ РАБОТАЕТ

Итак, что я сделал, прежде чем поместить данные в кеш, я проверил ключ, содержит ли он только числа, используя

if (code.matches("[0-9]+")) 

Если да, то сохраните ключ как целое число, иначе сохраните его как строку.

Теперь я могу получить значения для всех случаев.

ДРУГОЕ РЕШЕНИЕ -

Вместо того, чтобы хранить ключ как целое число, даже если это число, хранящееся в виде строки, тогда при выполнении get

получить \ 111

это тоже возвращает правильные значения

person Abi    schedule 27.03.2013