Hazelcast sql 个查询
Hazelcast sql queries
在对 select 特定字段(emp_id
、emp_name
、emp_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
在对 select 特定字段(emp_id
、emp_name
、emp_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