我是Grails的新手。我安装了Grails 2.4.4版本和Spring Tool Suite。 我创建了Grails项目和域,控制器类。但是我默认情况下将所有字段都设为强制字段,并且不生成“id”。需要一些帮助。
域类:
package org.example.pomorodo
class Task {
String summary
String details
Date dateCreated
Date deadLine
Long timeSpent=0L
static constraints = {
}
}
控制器类: 包org.example.pomorodo
class TaskController {
static scaffold =Task
}
答案 0 :(得分:0)
你的意思是说你无法访问" id"使用GORM保存域对象后的属性?或者只是生成的代码没有" id"属性明确定义?如果是后者,请不要担心。 " id"属性由框架的元编程黑魔法自动注入。如果它是前者,那么其他的东西就错了,因为你肯定应该有一个有效的" id"保存域对象后。
在必填字段上:使用约束块将字段切换为nullable = true。例如:
package org.example.pomorodo
class Task {
String summary
String details
Date dateCreated
Date deadLine
Long timeSpent=0L
static constraints = {
summary(nullable:true)
details(nullable:true)
}
}
您还可以全局修改默认约束。有关详细信息,请参阅constraints documentation。
答案 1 :(得分:0)
最近我得到了一个关于映射没有任何id和版本的数据库表的查询。例如,该表有两个varchar字段用户名和密码,仅此而已。 虽然这对我来说很奇怪,但是表没有id字段。好处是用户名是表中的主键,这不是自动递增用户希望通过自己的方法创建它。 关于Grails的好处是,在大多数情况下,您可以在文档http://grails.org/doc/latest/中得到答案。所以在这种情况下我们只需要像这样更改grails域中的id字段
class Test { 字符串用户名 字符串密码
static mapping = {
id name: 'username'
version false
id generator: 'assigned'
}
static constraints = {
username(nullable: true)
}
}