1

我有一个 Grails 2.2.3 域类,当我使用动态脚手架时,它会抛出关于我的复合 id 的 NullPointerExeption。我只会使用该pidm字段作为主键,但有时会有两条相同的记录pidm(相同的员工,但可能有名称更改或其他原因),并且 Grails 的 /show/ URI 有问题,因为返回了多行。这就是changeIndicator进来的地方 - 如果 changeIndicator 为空,他们是当前的员工。我想知道问题是否在于 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
4

2 回答 2

3

您的主要问题是 Hibernate 不允许可空列作为复合主键的一部分。

其次,Grails 脚手架插件不能很好地处理复合键。

于 2013-07-17T15:24:43.820 回答
0

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

<f:table collection="${domainTestList}" properties="['pro1', 'pro2', 'pro3', 'pro4']" />

我希望这是有道理的!

于 2020-10-08T22:27:50.160 回答