3

Android でのデータベース マッピングに Greendao を使用しています。これまでのところ、すべてがうまく機能しています。

しかし今、私は次の問題を抱えています:

クラスターとリーフ オブジェクトがあります。クラスターには多くのリーフ オブジェクトが含まれます。クラスタをズームすると、より多くのクラスタとリーフに分割できます。これは厳密なツリー関係ではなく、大きなクラスターには多くのリーフがありますが、小さなクラスターにはこのリーフのサブセットを含めることができます。

基本的に、クラスターには多くのリーフがありますが、リーフも複数のクラスターに含まれます。リーフの ID は一意であり、クラスターとの関係はリーフに保存されるため、リーフは 1 つのクラスターにしか存在できません。

greendao のホームページには、多対多の関係が可能であると記載されていますが、この関係をモデル化する方法がわかりません。

そのような関係をモデル化することは可能ですか、それともデータ構造が GreenDao の問題ですか?

4

1 に答える 1

4

ドキュメントからの引用から始めましょう:

現在、greenDAOはn:m関係を直接サポートしていませんが、結合テーブルを個別のエンティティとしてモデル化できます。実際には、追加のプロパティを持つ「リレーションエンティティ」があることが多いので、とにかくそうしたいと思うかもしれません。将来のリリースでは、greenDAOはn:m関係の直接サポートを導入する可能性があります。

したがって、あなたの場合、クラスターとリーフの間にあるエンティティをモデル化する必要があります。このエンティティをClusterLeafと呼びましょう。クラスターのリーフを効率的にクエリするには、QueryBuilderがまだ結合をサポートしていないため、生のクエリをお勧めします。

于 2013-02-12T16:40:55.017 に答える