0

我有两个域类:

class Book {
  String name

  static hasMany = [articles: Article]
}   


class Article {
  String name

  static belongsTo = [book: Book]
}   

我想验证一本书在文章名称属性方面确实只有独特的文章。换句话说:同一本书中不能有同名文章。我怎样才能确保这一点?

4

1 回答 1

1

您可以使用Book类上的自定义验证器来执行此操作(请参阅文档)。

一个可能的实现如下所示:

static constraints = {
    articles validator: { articles, obj -> 
        Set names = new HashSet()
        for (Article article in articles) {
            if (!names.add(article.name)) {
                return false
            }
        }
        return true
    }
}

在此示例中,我使用 ajava.util.Set检查重复名称(如果添加了两次相同的名称,则Set.add()返回)。false

您可以使用 触发对象的验证myBookInstance.validate()

于 2013-05-04T20:13:42.883 回答