通过地图键上的谓词进行Hazelcast地图侦听器

时间:2020-04-08 10:28:21

标签: listener hazelcast hazelcast-imap

我如何设置一个侦听器到一个具有复杂的键对象的映射,并且我只想侦听具有特定键参数值的条目发生的更改。

例如,我有一个与此相似的代码:

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”语言的键的条目,则不会调用我的回调函数。所以我认为我的断言是错误的。

1 个答案:

答案 0 :(得分:2)

要访问条目的关键部分,您需要使用“ __key

例如“ __key.field1 > 5”。

有关更多详细信息,请参见https://docs.hazelcast.org/docs/4.0/manual/html-single/index.html#querying-entry-keys-with-predicates