Hazelcast 地图侦听器通过地图键上的谓词
Hazelcast map listener by predicate on map key
我如何为具有复杂键对象的映射设置侦听器,我只想侦听具有特定键参数值的条目发生的变化。
例如我有一个类似于这样的代码:
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" 语言的键的条目被更新时,我的回调函数没有被调用。所以我假设我的谓词是错误的。
要访问条目的关键部分,您需要使用“__key
”
例如,“__key.field1 > 5
”。
有关详细信息,请参阅 https://docs.hazelcast.org/docs/4.0/manual/html-single/index.html#querying-entry-keys-with-predicates。
我如何为具有复杂键对象的映射设置侦听器,我只想侦听具有特定键参数值的条目发生的变化。
例如我有一个类似于这样的代码:
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" 语言的键的条目被更新时,我的回调函数没有被调用。所以我假设我的谓词是错误的。
要访问条目的关键部分,您需要使用“__key
”
例如,“__key.field1 > 5
”。
有关详细信息,请参阅 https://docs.hazelcast.org/docs/4.0/manual/html-single/index.html#querying-entry-keys-with-predicates。