【发布时间】:2012-07-31 20:33:27
【问题描述】:
谁能帮我解决我的情况。我有以下代码。
class Employee {
Integer empId
String firstName
String lastName
static constraints = {
empId()
firstName()
lastName()
}
static mapping = {
id generator:'assigned', name:'empId'
version false
}
}
代码允许我通过“创建”保存员工,但给出以下错误消息
“找不到 ID 为 null 的员工”,并且在列表中,所有员工都已列出,但单击任何 Emp Id 都会出现相同的错误。请帮忙。这让我发疯了。
洛基
感谢您的回复。就像我提到的那样,我可以将 empId 保存在数据库中,但仍然会收到该消息并查看分配了 id (empId) 的列表。链接指向员工/节目,末尾没有数字。但是 employee/show/22(empId) 工作正常。 employee/edit/22 也可以,但更新不起作用。
我没有使用任何分配的序列。只是一些随机整数。也许更好的例子是使用 SSN 而不是 empId。
再次感谢您。
你是一个很好的帮助伙伴。感谢您的时间和耐心。我没有写任何特殊的更新或保存(我太新了,不能深入挖掘)。只需使用 grails 来生成所有内容。但是,我确实找到了解决方法。我更改了域类以添加变量 id (Long) 并添加 empId setter 方法以将 empId 值分配给 id。做到了。这是我的代码。
类员工{ 长身份证 长empId 字符串名 字符串姓氏
static constraints = {
empId()
firstName()
lastName()
}
static mapping = {
id generator:'assigned', name:'empId', column: 'emp_id'
version false
}
public void setEmpId(Long empId){
this.empId = empId
this.id = empId
}
}
如果您有更好的方法,请随时提出建议。
问候
洛基
【问题讨论】:
-
还有一件事,我正在运行 generate-all Employee,如果有帮助的话。是不是generate-all不工作除非主键是id。
-
好的。因此,您正在为您的对象分配 ID,对吗?您是否会发布您的更新并保存操作,以便更轻松地了解发生了什么?
-
嘿蒂亚戈,你是个好帮手。我没有创建任何特殊的保存或更新,只是使用 grails 来生成所有这些。但是,我找到了一种解决方法。这就是我所做的