Hazelcast 获取操作

Hazelcast get operation

通过键获取 hazelcast 值...

        IMap<tblHeaders, HazelcastJsonValue> person = hazelcastInstance.getMap("person");

        person.put(new tblHeaders("1", "ram", "0001"), new HazelcastJsonValue("{ \"name1\":\"John1\" }"));
        person.put(new tblHeaders("1", "vikas", "0002"), new HazelcastJsonValue("{ \"name2\":\"John2\" }"));
        person.put(new tblHeaders("1", "datrs", "0003"), new HazelcastJsonValue("{ \"name3\":\"John3\" }"));

型号Class

public class tblHeaders implements Serializable{  
    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    private String school_id;
    private String name;
    private String unique_id;

这里如何通过传递单键获取值... 示例

HazelcastJsonValue json = person.get("school_id='0001'");
System.out.println(json.toString()); //get the value here

这里有几件事。

  • IMap.get()方法只能通过全键值检索;由于您只提供了部分密钥,因此 get() 方法将不匹配任何内容。
  • IMap.values() 方法采用 Predicate 参数,并且是尝试根据键的部分内容或键的全部或部分内容进行匹配的查询时使用的正确方法条目的值。
  • 默认情况下,谓词应用于值,但您可以通过在谓词的属性字段中使用关键字 __key(两个下划线)来指定它应用于键。
  • 由于查询可能(并且确实)匹配多个项目,因此正确的 return 类型是 HazelcastJsonValue 的集合。

下面是将执行您正在尝试的操作的代码:

Predicate schoolPredicate = Predicates.equal("__key.school_id", "1");
Collection<HazelcastJsonValue> json = person.values(schoolPredicate);
System.out.println(json); //get the value here

给出输出

[{ "name3":"John3" }, { "name1":"John1" }, { "name2":"John2" }]