Ignite对象内集合的SQL工具查询
问题描述:
我正在使用Ignite v2.1和dbeaver查询高速缓存。是否有可能查询缓存中的对象内的集合或缓存中对象内的复杂对象?如果是这样,它的语法是什么?Ignite对象内集合的SQL工具查询
例如,如果我有像IgniteCache和Person这样的缓存,看起来像下面那样,那么语法是什么1)选择地址和2)选择兄弟名称&地址?
class Person {
String name;
Addresss address;
Collection<Person> siblings;
}
答
你将不得不在这个缓存声明QueryEntity这个缓存,具有字段和索引列表,那么您可以在SQL查询中使用的字段。在相同的文档中解释注释驱动的设置,选择一个更适合您的文档。
然后1)可能会像SELECT ADDRESS FROM PERSONCACHE.PERSON WHERE NAME = ?
。
不支持外键,但我不认为siblings
设置将工作。除非添加连接表,否则它不适用于关系数据库。 Ignite不是图形数据库。
答
在Ignite中对嵌套集合执行SQL是不可能的:SQL标准不支持这样的事情。 SQL表是平坦的。
想想常规的SQL数据库:您需要引入Person.id
和Person.parentId
(一到多),或者单独的映射表(许多到多),然后使用SQL JOIN
查询的兄弟姐妹。