我有一个Grails 2.2.3域类,当我使用动态脚手架时,该类会抛出关于我的复合ID的NullPointerExeption。我只是将pidm
字段用作主键,但是偶尔会有两条记录具有相同的pidm
(同一位员工,但可能会有名称更改或其他内容),并且Grails在/ show / URI上遇到了麻烦,因为存在多行回到。这就是changeIndicator
进入的地方-如果changeIndicator为null,则它们是当前的Employee。我想知道问题是pidm和changeIndicator是两种不同的类型。
有谁知道错误可能是什么?
下面是类和错误:
class Employee implements Serializable {
Integer pidm
String sid
String firstName
String lastName
String middleInitial
Character changeIndicator
static mapping = {
table 'employee'
id composite: ['pidm', 'changeIndicator']
columns {
pidm column: 'PIDM'
changeIndicator column: 'CHANGE_IND'
// more mappings
}
version false
}
错误:
URI
/phoneauth/employee/list
Class
java.lang.NullPointerException
Message
Cannot get property 'id' on null object
最佳答案
您的主要问题是Hibernate不允许将可为空的列作为复合主键的一部分。
其次,Grails脚手架插件不能很好地处理复合键。