2

階層データにはネストされたセットを使用することをお勧めします。ただし、この設計では、データを削除または挿入する場合は、常に右ノードと左ノードを計算する必要があります。さらに、外部キーはありません。

このモデルをJPAに反映するにはどうすればよいですか?出来ますか?

4

1 に答える 1

1

RIGHTとLEFTを使用しても、PARENT_IDが必要になると思います。そうしないと、親/子のクエリが非効率になるか、可能かどうかさえわかりません。

アプリケーション/モデルで、またはPrePersist / PreUpdate/PreRemoveイベントを介して更新できるRIGHT値とLEFT値。

別のオプションは、代わりに展開テーブルを使用することです。そのためには、ManyToMany結合テーブルを使用するallChildren関係を追加する必要があります。子を任意のノードに追加するときは、子をそのすべての親に追加する必要があります。

さらに別のオプションは、OracleのCONNECT BY句など、データベースで階層クエリを使用することです。

于 2012-08-29T12:53:36.197 に答える