简体   繁体   English

如何在 Hazelcast 的 IMap 中 select 多个键?

[英]How to select multiple keys in Hazelcast's IMap?

I'm trying to fetch values by IMap keys.我正在尝试通过 IMap 键获取值。

My test code:我的测试代码:

1) Model Class 1) Model Class

public class ModelTest implements Serializable{
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private String id1;
    private String id2;
    private String id3;

    public ModelTest() {
        super();
    }


2) Main method 2)主要方法

        HazelcastInstance hazelcastInstance = Hazelcast.newHazelcastInstance();
        IMap<ModelTest, String> map = hazelcastInstance.getMap("map-name");
        ModelTest t1 = new ModelTest();
        t1.setId1("a1");
        t1.setId2("a2");
        t1.setId3("a3");

        ModelTest t2 = new ModelTest();
        t2.setId1("b1");
        t2.setId2("b2");
        t2.setId3("b3");
       
       //Loading into cache
        map.put(t1, "rakesh");
        map.put(t2, "ramkumar");

I'm able to fetch values by passing a single key at a time我可以通过一次传递一个键来获取值

Example:例子:

SqlPredicate predicate = new SqlPredicate("__key.id1='a1'");

Is it possible to select more than one key at a time? select 是否可以一次使用多个键?

SqlPredicate predicate = new SqlPredicate("__key.id1='a1' and __key.id2='b2'");

Something like the above code?类似于上面的代码?

I don't want to use Predicate because it's not dynamic.我不想使用Predicate ,因为它不是动态的。

Predicate predicate = e.is( "active" ).and( e.get( "age" ).lessThan( 30 ) );

You can select more than one key with one query, just use or keyword.您可以一次查询 select 多个键,只需使用or关键字。

In your case, the following predicate should return both entries.在您的情况下,以下谓词应返回两个条目。

SqlPredicate predicate = new SqlPredicate("__key.id1='a1' or __key.id2='b2'");

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM