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