2017-10-15 4 views
1

Ignite v2.1およびdbeaverを使用してキャッシュを照会しています。キャッシュ内のオブジェクト内のコレクション、またはキャッシュ内のオブジェクト内の複雑なオブジェクトにクエリを照会することは可能ですか?そしてもしそうなら、どのような構文ですか?オブジェクト内のコレクションのIgnite SQLツールクエリ

たとえば、IgniteCacheやPersonのようなキャッシュがある場合、次のような構文があります。1)アドレスを選択し、2)兄弟名&のアドレスを選択しますか?

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

答えて

0

あなたは、あなたはSQLクエリでそのフィールドを使用することができ、このキャッシュのフィールドとインデックスのリストで、このキャッシュのためQueryEntityを宣言する必要があります。アノテーション駆動の設定は同じ文書で説明されていますが、あなたに合ったものを選んでください。

次に、1)はおそらくSELECT ADDRESS FROM PERSONCACHE.PERSON WHERE NAME = ?のようなものになります。

外部キーはサポートされていませんが、私はsiblingsセットアップが動作するとは思わないでしょう。ジョイン・テーブルを追加しない限り、リレーショナル・データベースのようには機能しません。 Igniteはグラフデータベースではありません。

1

Igniteでネストされたコレクションに対してSQLを実行することはできません.SQL標準では、このようなことはサポートされていません。 SQLテーブルはフラットです。兄弟を照会するSQL JOINを使用し、その後、(多対多のために)あなたがPerson.idPerson.parentId(一対多用)を導入する必要がある、または別のマッピングテーブル:

は、通常のSQLデータベースを考えてみてください。

関連する問題