我想连接到旧数据库。我的旧数据库正在使用 postgresql。我使用 db-reverse-engineer 插件生成域类,生成的域类:
class TableLogin {
String username
String password
Integer userLevel
static mapping = {
id name: "username", generator: "assigned"
version false
}
static constraints = {
username maxSize: 30
password nullable: true, maxSize: 36
userLevel nullable: true
}
}
我跑generate-all
了,动作列表工作正常。但是,当我单击其中一个数据/用户名(执行显示操作)时,出现此错误: TableLogin not found with id null
我尝试使用此代码进行跟踪:
def rowLogin = TableLogin.get("supervisor")
log.error(rowLogin as JSON)
我得到了:
{"class":"webnico.TableLogin","id":null,"password":"2dcc509a6f7584","userLevel":0,"username":"supervisor"}
为什么id
是 null ?我认为因为 id 为 null 所以 show 操作不起作用
我更新了我的域类,成为:
class TableLogin {
String id
String username
String password
Integer userLevel
static mapping = {
id name: "username", generator: "assigned"
version false
}
static constraints = {
username maxSize: 30
password nullable: true, maxSize: 36
userLevel nullable: true
}
def afterLoad() {
id = username
}
}
id
不再为空
{"class":"webnico.TableLogin","id":"supervisor","password":"2dcc509a6f7584","userLevel":0,"username":"supervisor"}
但是,表演动作仍然不起作用。显示 URL 似乎是正确的,http ://mylocalhost.com:9000/webnico/tableLogin/show/supervisor 但我仍然遇到同样的错误:TableLogin not found with id null
这是否意味着当类型不是时我们不能使用脚手架(generate-all
)?id
Long