[英]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.