我有两个域类:
class Book {
String name
static hasMany = [articles: Article]
}
class Article {
String name
static belongsTo = [book: Book]
}
我想验证一本书在文章名称属性方面确实只有独特的文章。换句话说:同一本书中不能有同名文章。我怎样才能确保这一点?
我有两个域类:
class Book {
String name
static hasMany = [articles: Article]
}
class Article {
String name
static belongsTo = [book: Book]
}
我想验证一本书在文章名称属性方面确实只有独特的文章。换句话说:同一本书中不能有同名文章。我怎样才能确保这一点?
您可以使用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()
。