內約束/ DB映射地圖繼Grails領域類:如何調整Grails領域類
class MyClass {
Map myMap
}
現在對於MYMAP的是,Grails自動在地圖中的元素創建新表。但是,如果我添加的元素太長(例如1024個字符),則會出現數據庫錯誤。
我可以通過某種方式告訴grails使myMap表中的相應列足夠大以允許更大的字符串,還是我必須在DB中手動執行此操作?
我已經嘗試過
static constraints = {
myMap(maxSize:1024)
}
不工作(如預期,因爲最大範圍應參照地圖的價值觀,而不是地圖本身)。
如果不通過限制,也許有辦法做到這一點通過
?
謝謝,我終於這麼做了。我試圖覆蓋setter,以便您能夠直接傳遞Map作爲參數,但這不起作用 - 例如, public void setdynaProperties(Map map){map.each {this.addToDynaProperties(name:it.key.toString(),value:it.value.toString())}}。至少它不能使用構造函數。 – 2010-07-14 07:48:56
酷,我很高興整體解決方案爲你工作。我很好奇你的二傳手是什麼錯誤?我知道我試圖用類型化的方法簽名來「僞造」一個屬性,如果我使用「def」(而不是「public void」),它就傾向於工作。但是這可能適用於吸氣人員而非套裝人員。 – 2010-07-14 18:41:34