1

我正在使用 Ignite v2.1 和 dbeaver 来查询缓存。是否可以查询缓存中对象内的集合,或缓存中对象内的复杂对象?如果是这样,它的语法是什么?

例如,如果我有一个像 IgniteCache 和 Person 的缓存,如下所示,那么 1) 选择地址和 2) 选择兄弟名称和地址的语法是什么?

class Person {
  String name;
  Addresss address;
  Collection<Person> siblings;
}
4

2 回答 2

1

在 Ignite 中不可能对嵌套集合执行 SQL:SQL 标准不支持这样的事情。SQL 表是扁平的。

想想常规的 SQL 数据库:需要引入Person.idPerson.parentId(对于一对多),或者单独的映射表(对于多对多),然后使用 SQLJOIN查询兄弟。

于 2017-10-16T10:07:53.463 回答
0

您必须为此缓存声明QueryEntity,并在此缓存中包含字段和索引列表,然后您可以在 SQL 查询中使用其字段。注释驱动的设置在同一个文档中进行了解释,选择一个更适合您的。

那么 1) 可能类似于SELECT ADDRESS FROM PERSONCACHE.PERSON WHERE NAME = ?.

但是,不支持外键,我认为该siblings设置不会起作用。除非您添加连接表,否则它不适用于关系数据库。Ignite 不是图形数据库。

于 2017-10-16T09:23:24.897 回答