Кто-нибудь знает, как создать предикат типа даты для Hazelcast? Я использую Predicates.equal("date","value");
Это не работает должным образом. Я передаю существующее значение даты в Hazelcast. Он ничего не возвращает. java.util.date
должны быть сопоставимы. Я не знаю, почему он не сравнится должным образом. Любой может помочь, очень ценю!Создать предикат в поле даты для Hazelcast
ответ
вы также можете попробовать свой собственный предикат. то есть, если у вас есть карта с ключом бытие объекта и значение бытия Дата, то вы можете сделать следующее:
final Date requiredDate = /*your date object*/;
map.values(new Predicate<Object, Date>() {
public boolean apply(Entry<Object, Date> arg0) {
Date date = arg0.getValue();
if(requiredDate.equals(date))
return true;
else
return false;
}
});
вы можете делать другие формы сравнения внутри метода применения, а также.
Большое спасибо за ответ. Моя структура карты заключается в том, что Object является значением, а случайная строка является ключевой. У объекта есть свойство Date. И я даю поиск свойств в плане DSL в Camel. Проблема в том, что я передаю строку form formate в hazelcast, она не получает согласованного результата. –
Я не уверен, правильно ли я понял вашу установку. объект имеет свойство Date (java.util.Date) и в предикате вы передаете String (java.lang.String) как сопоставимый? –
Да. Это верно. –
Возможно, разные временные часы или миллисекунды или что-то еще? Он должен работать так же, как с использованием SQLPredicate. – noctarius
Вы используете его с первым параметром в виде строки с именем атрибута? вы уверены, что сравниваете точно такую же дату? Дата java.util содержит миллисекунды. – MarianP
Я использую его со вторым параметром, как строка на верблюде. Я почти уверен, что сравниваю точно такую же дату. Но Hazelcast, похоже, не сравнивает дату. –