0
我有以下關係刪除相關的類:添加,更新和Grails的
class Host {
static hasMany = [ips: HostIp, groups: HostGroup]
static belongsTo = [HostGroup]
String dns
}
class HostIp {
static belongsTo: [host: Host]
String ip
}
class HostGroup {
static hasMany = [ hosts: Host ]
String name
}
我有一個GSP的形式,允許主機的版本。我有一個動態添加 - 編輯 - 刪除列表來添加,編輯和刪除新的和當前的主機IP,所以如果主機原本有兩個IP(ip1和ip2),但ip1被刪除,ip2修改爲ip3和ip4被添加,提交時
ips[0].id = 8
ips[0].ip = ip1
ips[1].id = 9
ips[1].ip = ip2
發送數據:該數據被髮送到控制器:在形式顯示
原始數據
ips[1].id = 9
ips[1].ip = ip3
ips[2].ip = ip4
這意味着,作爲IP1被去除,既不其發送id或ip(其字段從表單中刪除),併發送新的ip4(新的動態字段添加編輯),沒有ID,因爲它還不存在。因此,在做bindData(host, params)
,然後save()
時,ip2更新爲ip3,並創建了ip4,但ip1未被刪除。這是bindData
的正常行爲嗎?如果沒有,這可以強制嗎?
我會問在另一篇文章的羣體關係......
的問候和感謝提前。
使用grails 2.3.7。
我不認爲bindData會刪除未映射的記錄。如果可行的話,您可以實現目標的一個好方法就是消除所有內容,並每次重新編寫新數據的關聯。 – dmahapatro