2

自分自身にリンクするgrailsドメインクラスを作成したいと思います。

この関連する投稿は解決策を提案していますが、私はそれを機能させることができません:それ自体に対するGrailsドメインクラスの関係

一つには、comparableが何をするのか理解しておらず、int compareTo(obj)メソッドを追加する必要があります。

Comparableコンパイルを実装せずにコードに以下を追加しますが、実行時にgrailsがクラッシュします。

//NavMenu parent
SortedSet subItems
static hasMany = [subItems: NavMenu]
static belongsTo = [parent: NavMenu]
static constraints = { parent(nullable:true) }

前もって感謝します

4

2 に答える 2

2

を使用している場合SortedSet、ソートアルゴリズムは内部で実行されますが、ソート基準が必要です。Comparable内部アルゴリズムにソート基準を提供する標準的な方法であるため、インターフェースを実装する必要があります。

特定の順序が必要ない場合は、行を削除して、インターフェースSortedSet subItemsの実装を回避できます。Comparable

于 2012-08-30T16:56:11.210 に答える
0

Comparableインターフェイスを使用したくない場合は、SortedSetの代わりにListを使用する必要があります。

リストを使用すると、オブジェクトを追加さ​​れた順序で保持し、配列のようにインデックスでオブジェクトを参照できるようになります。

これは公式ドキュメントの例です。

class Author {
    List books

    static hasMany = [books: Book] 
}
于 2012-08-30T17:30:01.900 に答える