具有一对多的未保存域类以随机顺序返回子对象

时间:2012-06-27 12:19:19

标签: validation grails constraints children

情况就是这样:

我上课了。例如:

    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个字符,所以我将对象返回到表单。

问题是我创建的儿童对象没有返回!你们如何验证从未保存过的域类的子对象?!?!

谢谢!

2 个答案:

答案 0 :(得分: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'
   }

}

答案 1 :(得分:0)

默认情况下,hasMany使用Set来存储相关对象,Set没有按顺序排列的概念。如果订单对您的申请很重要,我建议改为使用List