如何基于其子实体中的字段从Hazelcast映射中获取实体

问题描述 投票:0回答:1

我在一项服务中使用Hazelcast 3.12.6版本来缓存其中具有子实体(Child)的实体(Parent)。如下所示:

public class Parent { 
    private String parentField;
    private Child child;
    //Getters and Setters
}

public class Child { 
   private String childField;
   //Getters and Setters
}

现在,我需要根据子实体中的childField获取所有父条目。因此,任何人都可以告诉我如何使用com.hazelcast.query.Predicate实现此目标。我正在寻找类似下面的内容:

IMap<String, Parent> parentIMap = hazelcastInstance.getMap("parent");
Predicate predicate = Predicates.equal("child.childField", "somevalue");
parentIMap.values(pagingPredicate);

非常感谢您的帮助。预先感谢。

caching hazelcast predicate hazelcast-imap predicatebuilder
1个回答
0
投票
    parentIMap.put("1", new Parent("Father",new Child("John")));
    parentIMap.put("2", new Parent("Father",new Child("Maria")));
    parentIMap.put("3", new Parent("Mother",new Child("John")));
    parentIMap.put("4", new Parent("Mother",new Child("Maria")));

鉴于上述数据集,以下查询将返回John的父项:

    Collection values = parentIMap.values(new SqlPredicate("child.childField =John"));
    Collection values = parentIMap.values(Predicates.equal("child.childField","John"));
© www.soinside.com 2019 - 2024. All rights reserved.