我正在使用Ignite v2.1和dbeaver来查询缓存。是否可以查询缓存中对象内的集合,或缓存中对象内的复杂对象?如果是这样,它的语法是什么?
例如,如果我有一个像IgniteCache和Person这样的缓存,如下所示,语法是什么1)选择地址和2)选择兄弟姐妹名称&地址?
class Person {
String name;
Addresss address;
Collection<Person> siblings;
}
答案 0 :(得分:1)
在Ignite中无法对嵌套集合执行SQL:SQL标准不支持此类操作。 SQL表是平的。
考虑常规SQL数据库:您需要引入Person.id
和Person.parentId
(对于一对多)或单独的映射表(对多对多),然后使用SQL { {1}}查询兄弟姐妹。
答案 1 :(得分:0)
您必须为此缓存声明QueryEntity,并在此缓存中包含字段和索引列表,然后您可以在SQL查询中使用其字段。注释驱动的设置在同一个文档中解释,选择一个更适合你的。
然后1)可能会像SELECT ADDRESS FROM PERSONCACHE.PERSON WHERE NAME = ?
。
不支持外键,我不认为siblings
设置可行。除非您添加连接表,否则它对关系数据库不起作用。 Ignite不是图表数据库。