我如何设置一个侦听器到一个具有复杂的键对象的映射,并且我只想侦听具有特定键参数值的条目发生的更改。
例如,我有一个与此相似的代码:
private class MyListener implements EntryAddedListener<>,
EntryUpdatedListener<KeyObject, Value> {
@Override
public void entryAdded(EntryEvent<KeyObject, Value> event) {
processCallbaclk(event);
}
@Override
public void entryUpdated(EntryEvent<KeyObject, Value> event) {
processCallback(event);
}
}
KeyObject{
Integer id,
String language
}
MyListener listener = new MyListener();
Predicate<KeyObject, Value> filter = equal(language, "EN");
imap.addEntryListener(listener, filter, true)
但是,如果更新带有包含“ EN”语言的键的条目,则不会调用我的回调函数。所以我认为我的断言是错误的。
答案 0 :(得分:2)
要访问条目的关键部分,您需要使用“ __key
”
例如“ __key.field1 > 5
”。
有关更多详细信息,请参见https://docs.hazelcast.org/docs/4.0/manual/html-single/index.html#querying-entry-keys-with-predicates。