0

n レベルの深いネスティングをサポートするカテゴリ ドメインを実装しました。

カテゴリ テーブルには、カテゴリ テーブルのみの ID である parent_id が含まれています。

public class Category {

String name;
//Reference to parent category
Category parentCategory;
//Child categories if this Category is a parent (Should I keep this in domain or remove it?)
Set categories;
}

A > B > C

M > N > O > P > Q

上記の階層は、A の ID を B のparent_id として、B の ID を C のparent_id として、M の ID を N のparent_id として、N の ID を O の親 ID として設定することによって作成できます。

ここで、すべてのカテゴリの構造のようなツリーを表示したいと思います (jsTree を使用)。データを取得する最良の方法は何ですか?

4

1 に答える 1

0

子サブカテゴリには、自分自身への hasMany 関係を使用できます。

public class Category {
   String name;
   //Reference to parent category
   Category parentCategory;
   static hasMany = [subCategories: Category]
}

これで、「.」を使用して、親で遅延フェッチを実行して子要素を取得できます。親に対する操作、または基準を使用してすべての子要素を熱心に取得します (これが安価である場合)。

parentCategory注:は、リーフ ノードからルートに向かってツリーを上に移動するためだけに必要です。一方向のトラバーサルのみが必要な場合は、hasManyマッピングで十分です。

于 2013-04-14T00:39:00.623 に答える