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

How to select multiple keys in Hazelcast's IMap?

我正在尝试通过 IMap 键获取值。

我的测试代码:

1) 型号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) 主要方法

        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");

我可以通过一次传递一个键来获取值

示例:

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

一次可以select多个键吗?

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

类似于上面的代码?

我不想使用 Predicate 因为它不是动态的。

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

一个查询可以select多个键,只需使用or关键字。

在您的情况下,以下谓词应该 return 两个条目。

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