GridGain连接查询,返回两个对象

时间:2015-04-28 20:46:47

标签: gridgain

作为GridGain缓存查询的结果,是否可以返回连接的两个对象?

我们可以从两者中获取连接的一个或两个字段(然后使用它们分别检索每个对象),但是查看示例和文档似乎无法获取这两个对象。

谢谢!

2 个答案:

答案 0 :(得分:0)

首先,GridGain开源版现在是Apache Ignite,所以我建议切换。

在Ignite中,您可以使用SqlFieldsQuery从查询中准确返回所需的字段,如下所示:

SqlFieldsQuery sql = new SqlFieldsQuery(
  "select fieldA1, fieldA2, fieldB3 from SomeTypeA a, SomeTypeB b " +
    "where a.id = b.otherId");

try (QueryCursor<List<?>> cursor = cache.query(sql) {
  for (List<?> row : cursor)
    System.out.println("Row: " + row);
}

在GridGain开源编辑中,您也可以使用GridGain字段查询API。

答案 1 :(得分:0)

@ dejan-在GridGain和Apache Ignite中,您可以使用_key和_val功能与SqlFieldsQuery一起返回一个对象。例如 -

SqlFieldsQuery sql = new SqlFieldsQuery(
 "select a._key, a._val, b._val from SomeTypeA a, SomeTypeB b " +
   "where a.id = b.otherId");

try (QueryCursor<List<?>> cursor = cache.query(sql) {
  for (List<?> row : cursor)
    System.out.println("Row: " + row);
}

请注意,在这种情况下,对象将以序列化形式返回。