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

How to fetch entities from Hazelcast map based on a field in its child entity

我在我的一项服务中使用 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);

非常感谢任何帮助。提前致谢。

    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")));

鉴于上述数据集,以下查询将 return John

的父条目
    Collection values = parentIMap.values(new SqlPredicate("child.childField =John"));
    Collection values = parentIMap.values(Predicates.equal("child.childField","John"));