2013-07-15 31 views
-1

在我的Grails應用程序中,我有一個服務可以創建並保存一系列域對象。這裏是下面的示例代碼:由於ID爲null,Grails域對象無法保存

for (int i = 0; i < notes.size(); i++) { 
    Note newNote = new Note() 
    newNote.description = notes[i].description 
    newNote.displayDate = notes[i].displayDate 
    newNote.book = book 
    newNote.save() 
} 

我保存失敗,此錯誤:

ERROR util.JDBCExceptionReporter - NULL not allowed for column "FUND_ID"; 

我創造和很多其他地方就好了節能領域對象。這裏有什麼問題?

下面是注意類:

class Note { 

    String description 
    Date displayDate 

    static belongsTo = [book: Book] 
} 
+1

'FUND_ID'沒有在域類中引用的地方,它是如何映射的?你能否顯示確切的域名類,包括'Book'?如果Book是關係的所有者,它是先創建並添加到'Note',就像'book.addTo *'? – dmahapatro

+0

由Grails自動添加FUND_ID作爲FUND表的主鍵。它應該自動處理其值的生成。 Book被添加到Note對象,如上面「newNote.book = book」中所示 – user1007895

+2

Grails添加的主鍵是ID。不是FUND_ID。看起來像你有一個自定義的命名方案。粘貼域名類 –

回答

0

它結束了一個交易的問題。 Grails服務在默認情況下是事務性的,並且這是一種調用另一種事務性服務方法的事務性服務方法。出於某種原因,它不是那樣的。我刪除了嵌套事務,現在它可以工作。

相關問題