2013-06-02 21 views
3

我在學習Grails,並且對遺留表有一個問題。現在我在我的控制器中使用腳手架,但最終(當然)將它構建到自定義控制器和視圖 - 現在我只是試圖讓模型正確。假設我有一個現有的表FOOBAR,列FOOBAR_CODE(varchar,主鍵)和FOOBAR_DESC(varchar) - 我怎樣才能建模(比如做一個域類,這樣我可以CRUD)?我已經在互聯網上搜索無濟於事 - 當然,我只是錯過了一些東西。看例子,我最後一次嘗試如下。當我訪問控制器的「列表」操作時,我看到一個「代碼」和「加密」列,「加密」列中有值,但「代碼」列沒有(我的應用程序已連接到現有表中有一些行) - 很明顯,我的應用程序沒有將我的「代碼」屬性/列與正確列(FOOBAR_CODE)關聯 - 這進一步證明了當我嘗試添加新條目時,得到錯誤「Field」FOOBAR_CODE'沒有默認值「 - 應用程序沒有將創建表單上的」Desc「字段與數據庫中的FOOBAR_DESC列相關聯。我相信我的問題將在我未來的研究中得到解答,我知道我正在跳槍。有人有任何建議嗎?作爲字符串的Grails ID(主鍵)列

我確定我的問題之一是「generator:'assigned'」 - 這似乎是依靠DB來分配一個值。

基本上,我有一個現有的表與兩個varchar列(一個是主鍵),我正在嘗試CRUD功能。

我將不勝感激任何見解!

謝謝!

class FOOBAR { 

    String id 
    String code 
    String desc 

    static constraints = { 
    } 

    static mapping = { 
     table "FOOBAR" 

     version false 
     columns { 
      id column: 'FOOBAR_CODE', generator: 'assigned', name: 'code' 
      desc column: "FOOBAR_DESC" 
     } 
     } 


} 
+1

看一看這個: http://stackoverflow.com/questions/8856336/changing-primary-key-id-to-string-type-in -grails/8860451#8860451 –

回答

2

試試這個:

class FOOBAR { 

    String code 
    String desc 

    static constraints = { 
    } 

    static mapping = { 
     table "FOOBAR" //schema: "SCHEMA" if it is different from the user 

     version false 
     id generator: 'assigned', name: 'code' 
     code column: "FOOBAR_CODE" 
     desc column: "FOOBAR_DESC" 
     } 

} 
+0

嗨James, 非常感謝您的回覆 - 當我嘗試通過UI創建新記錄時,仍然收到「Field'id'沒有默認值」錯誤 - 和通過UI編輯記錄時發現錯誤「FOOBAR not id with null」 - 還有其他建議嗎? 感謝您花時間回覆! – charlesread

+0

發佈表架構和產生錯誤的代碼。 –

相關問題