如何根据其子实体中的字段从 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"));
我在我的一项服务中使用 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"));