Hazelcast sql 个查询

Hazelcast sql queries

在对 select 特定字段(emp_idemp_nameemp_email)的正常 SQL 查询中,我们使用 select emp_name from table_name(至 display/fetch 仅 emp_name

同样的方法在hazelcast中如何做?

static IMap<String, Model)> map = hazelCast.getMap("data");    
map.put(1,(new Model(emp_id,emp_name,emp_email)));    
map.values(new SqlPredicate("data[any].entity_id"));

如何在结果中 select 只有 emp_name 个值?

您要找的是 Hazelcast 中的投影。您的地图中存储的是 Map.Entry 类型的对象;任何时候你想要 return 除了 Map.Entry 之外的东西,你都可以创建一个投影来将条目转换为所需的 return 类型。

当您需要进行重要的转换时,您可以实现自定义投影,但是当您只是尝试 return 单个属性或条目中的一组属性。

所以在你的情况下,你可以使用内置的 singleAttribute 投影:

Projection empNameProjection = Projection.singleAttribute("emp_name");

然后您可以使用 IMap.project 到 return 所有条目的投影,​​或匹配预测的条目:

Collection<String> names = map.project(empNameProjection, mySqlPredicate);

见: https://docs.hazelcast.org/docs/latest-dev/manual/html-single/#projection-api