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
       }
   }

现在,我为这个一对多创建了一个表单,当我尝试验证时,该人没有输入至少 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使用 aSet来存储相关对象,并且 aSet没有按顺序排列的概念。如果订单对您的应用程序很重要,我建议您使用 aList代替。

于 2012-06-27T13:19:37.837 回答