2017-10-15 314 views
1

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

例如,如果我有像IgniteCache和Person这样的缓存,看起来像下面那样,那么语法是什么1)选择地址和2)选择兄弟名称&地址?

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

回答

0

你将不得不在这个缓存声明QueryEntity这个缓存,具有字段和索引列表,那么您可以在SQL查询中使用的字段。在相同的文档中解释注释驱动的设置,选择一个更适合您的文档。

然后1)可能会像SELECT ADDRESS FROM PERSONCACHE.PERSON WHERE NAME = ?

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

1

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

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