作为GridGain缓存查询的结果,是否可以返回连接的两个对象?
我们可以从两者中获取连接的一个或两个字段(然后使用它们分别检索每个对象),但是查看示例和文档似乎无法获取这两个对象。
谢谢!
答案 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);
}
请注意,在这种情况下,对象将以序列化形式返回。