我正在学习grails,我遇到了问题。
我有两个课,让我们说:
class Book {
String name
String description
static belongsTo = Category
Category category
static constraints = {
name(nullable:false, blank:false)
description(nullable:true, maxSize:5000)
}
class Category {
String name
static hasMany = [books:Book]
Set books
static constraints = {
name(nullable:false, blank:false)
}
String toString(){
this.name
}
}
当我创建一本书时,我希望看到一个包含所有类别名称的下拉列表。 如果我没有选择一个类别,那么我就无法创建该书。 如果数据库中没有类别,那么我应该无法创建一本书, 直到我创建并选择一个类别。
如果我有正确的约束和字段,是否可以从域类生成此功能(使用grails generate-all)?如果是,怎么样?
答案 0 :(得分:5)
我可能会离开这里,但我认为您的belongsTo语句的格式不正确。在我见过的例子中,我用过的类是:
static belongsTo = [category:Category]
然后我相信你还需要将Category设置为nullable:false
static constraints = {
name(nullable:false, blank:false)
description(nullable:true, maxSize:5000)
category(nullable:false)
}
这至少应该生成视图的下拉列表并禁止创建没有类别的书籍。