我有两个域类:
class Book {
String name
static hasMany = [articles: Article]
}
class Article {
String name
static belongsTo = [book: Book]
}
我想验证一本书在文章名称属性方面确实只有独特的文章。换句话说:同一本书中不得有同名的文章。 我该如何确保?
答案 0 :(得分:1)
您可以使用Book
课程中的自定义验证工具执行此操作(请参阅documentation)。
可能的实现可能如下所示:
static constraints = {
articles validator: { articles, obj ->
Set names = new HashSet()
for (Article article in articles) {
if (!names.add(article.name)) {
return false
}
}
return true
}
}
在此示例中,我使用java.util.Set
检查重复的名称(Set.add()
如果添加两次相同的名称则返回false
。)
您可以使用myBookInstance.validate()
触发对象的验证。