1

我有一個Grails 2.2.3域類,當我使用動態腳手架時,拋出一個關於我的複合ID的NullPointerExeption。我只是使用pidm字段作爲主鍵,但偶爾有兩個記錄具有相同的pidm(同一名員工,但可能有名稱更改或某事),並且Grails在/ show/URI中遇到問題,因爲多個行被返回。這就是changeIndicator的地方 - 如果changeIndicator爲空,它們是當前的Employee。我想知道問題是,pidm和changeIndicator是兩種不同的類型。Grails複合ID拋出NullPointerException

有誰知道錯誤可能是什麼?

下面是類和錯誤:

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 
+0

所以你有名爲'table'的表? ['table'table''] – dmahapatro

+0

不,我只是認爲如果我沒有放入數據庫表名,它會更安全。只是忽略這一點。 編輯:我改變了它,所以它現在更有意義。 – grantmcconnaughey

+0

你如何試圖訪問這個領域的類?控制器代碼對於調試訪問「員工」的位置是必要的。 – dmahapatro

回答

2

您的主要問題是,休眠不允許爲空的列作爲一個複合主鍵的一部分。其次,Grails腳手架插件不能很好地處理組合鍵。

相關問題