我在一项服务中使用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")));
鉴于上述数据集,以下查询将返回John的父项:
Collection values = parentIMap.values(new SqlPredicate("child.childField =John"));
Collection values = parentIMap.values(Predicates.equal("child.childField","John"));