1

だからここに状況があります:

クラスがあります。例のために:

    class Author {
       String name

       static hasMany = [books: Book]
       static mapping = {
         books cascade: "all-delete-orphan"
       }
    }

    class Book {
       String text

       static belongsTo = [author: Author]

       static constraints = {
         text minSize: 500
       }
   }

ここで、この 1 対多のフォームを作成します。検証しようとすると、その人物は少なくとも 500 文字のテキストを入力しなかったため、オブジェクトをフォームに戻します。

問題は、子オブジェクトが作成した順序で返されないことです!!! 保存されたことのないドメイン クラスの子オブジェクトをどのように検証しますか?!?!

ありがとう!

4

2 に答える 2

0

この方法を試してください

class Author {
   String name
   ArrayList<Book> books = []
   static hasMany = [books: Book]
   static mapping = {
     books cascade: "all-delete-orphan"
   }
}

うまくいかない場合は、いくつかのフィールドで注文する必要があると思います

このようにソート順を指定できます

class Author {
   String name

   static hasMany = [books: Book]
   static mapping = {
     books cascade: "all-delete-orphan"
     books sort: 'id', order: 'desc'
   }

}
于 2012-06-27T12:29:46.383 に答える
0

デフォルトでは、 は をhasMany使用しSetて関連オブジェクトを格納し、 にSetは順序の概念はありません。アプリケーションにとって順序が重要な場合は、代わりに a を使用することをお勧めしListます。

于 2012-06-27T13:19:37.837 に答える