Grails复合id引发NullPointerException



我有一个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不允许将可为null的列作为复合主键的一部分。

其次,Grails scaffold插件不能很好地处理复合密钥。

您可以生成视图,并将所有模型的属性显式地放在indax.gsp中(示例):

<f: 表集合="${domainTestList}";属性=";[项目1',项目2',项目3',项目4]"/>

我希望这是有道理的!

相关内容

最新更新