如何获取 Ignite Cache SQL 对 Return 值对象的查询
How to get Ignite Cache SQL Query to Return Value Object
我将 Postgres 数据库配置为我的持久层,并想对 Ignite 中缓存的 Postgres 表执行 SQL 查询。
理想情况下,我想对这些缓存执行查询并return编辑这些表表示的值对象。
SqlQuery 提供了我正在寻找但已弃用的功能。
SqlFieldsQuery
会起作用,但我宁愿不必处理列表 > 的行数据。有没有办法让 SqlFieldsQuery
到 return 作为对象的值,现在作为其字段列表?
我认为连续查询可能是一种可能的替代方法,但我对监听缓存更新不感兴趣,而且它与 SqlFieldsQuery
不兼容。
使用 _key
和 _val
关键字检索整个键 and/or 值对象。
IgniteCache<Long, Person> cache = ignite.cache("Person");
SqlFieldsQuery sql = new SqlFieldsQuery(
"select _val from Person where age > ?", 28);
try (QueryCursor<List<?>> cursor = cache.query(sql)) {
for (List<?> row : cursor) {
Person p = (Person) row.get(0);
System.out.println(p);
}
}
我将 Postgres 数据库配置为我的持久层,并想对 Ignite 中缓存的 Postgres 表执行 SQL 查询。
理想情况下,我想对这些缓存执行查询并return编辑这些表表示的值对象。
SqlQuery 提供了我正在寻找但已弃用的功能。
SqlFieldsQuery
会起作用,但我宁愿不必处理列表 > 的行数据。有没有办法让 SqlFieldsQuery
到 return 作为对象的值,现在作为其字段列表?
我认为连续查询可能是一种可能的替代方法,但我对监听缓存更新不感兴趣,而且它与 SqlFieldsQuery
不兼容。
使用 _key
和 _val
关键字检索整个键 and/or 值对象。
IgniteCache<Long, Person> cache = ignite.cache("Person");
SqlFieldsQuery sql = new SqlFieldsQuery(
"select _val from Person where age > ?", 28);
try (QueryCursor<List<?>> cursor = cache.query(sql)) {
for (List<?> row : cursor) {
Person p = (Person) row.get(0);
System.out.println(p);
}
}