如何在 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'");
我正在尝试通过 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'");