我有一个Postgres数据库配置为我的持久层,并希望对缓存在Ignite的Postgres表执行SQL查询。
理想情况下,我希望在这些缓存上执行查询,并返回这些表所代表的Value对象。
SqlQuery为我提供了我正在寻找但已弃用的功能。
SqlFieldsQuery
可以工作,但我不希望在List>中处理行数据。是否有一种方法可以让SqlFieldsQuery
作为对象返回值,现在作为其字段的列表?
我认为连续查询可能是一个可能的选择,但我对听缓存更新不感兴趣,它与SqlFieldsQuery
不兼容。
使用_key
和_val
关键字检索整个键和/或值对象。
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);
}
}