我有一个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脚手架插件不能很好地处理复合键。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!