我正在尝试将一个不是密钥的字段与远程hazelcast匹配,这里的目标是创建许多远程实例并使用它来存储序列化对象。
我注意到的是,如果我在同一次运行中同时执行put和SQL,则返回有效,如下所示:
我的班级
public class Provider implements Serializable {
private String resourceId;
private String first;
public String getResourceId() {
return resourceId;
}
public void setResourceId(String resourceId) {
this.resourceId = resourceId;
}
public String getFirst() {
return first;
}
public void setFirst(String first) {
this.first = first;
}
}
代码:
/*********** map initlization ************/
Config config = new Config();
config.getNetworkConfig().setPublicAddress(host + ":" + port);
instance = Hazelcast.newHazelcastInstance(config);
map = instance.getMap("providerWithIndex");
String first = "XXXX"
/***** adding item ***************/
Provider provider = new Provider();
provider.setResourceId("11111");
provider.setFirst( first);
map.put(provider);
/********** getting items ************/
EntryObject e = new PredicateBuilder().getEntryObject();
Predicate predicate = e.get( "first" ).equal( first ) ;
Collection<Provider> providers = map.values(predicate);
一旦我同时运行put并进入不同的运行,结果为0 - 所以对于相同的代码我得不到响应。
我唯一的想法是它只进行本地获取而不是远程。但我希望我的某处有一个错误。
答案 0 :(得分:0)
您的代码看起来不错,除了您无法执行map.put(provider)
之外,您需要传递密钥,因此map.put(someKey, provider);
查询看起来&amp;工作正常。