刪除關聯實體並將此更改持久保存到數據庫時出現問題。grails/GORM/hibernate - hasMany地圖在父級的save()上不同步
有一個groovy對象父其中有很多子實體與它關聯。當我們找到這個域對象並將此列表設置爲null時,並且調用父 .save(flush:true) 子元素保留在數據庫中。本來預計這些已被刪除。任何建議都會很棒。
class Parent {
static hasMany = [child:Child] ... }
和兒童:
class Child {
belongsTo = [Parent] ... }
我們添加的元素和刪除:
def child = new Child()
def parent = new Parent(child:child)
parent.save(flush:true) def id = parent.id //from saved entity
/// in separate transaction
parent = Parent.get(id) //id from above parent.child = null
parent.save(flush:true)
// check database - child reference still there - expect to have been deleted
什麼,我們已經做了錯誤的將任何建議讚賞。使用grails 1.3.5(最新版本)。
非常好的答案。閱讀博客 - 這是值得的! – sbglasius 2010-12-01 11:53:40