grailsドメインでは、次のように実装されてbeforeDelete
います
class Shop {
def beforeDelete() {
Shop.withNewSession {
Client.findAllByShop(this)*.shop = null
}
}
}
ただし、クライアントショップのnull値はDBに保持されません。
手動セッションフラッシュを追加した場合
class Shop {
def beforeDelete() {
Shop.withNewSession { s2->
Client.findAllByShop(this)*.shop = null
s2.flush()
s2.clear()
}
}
}
それは機能し、クライアントショップの値はデータベースでヌルになります。
これはGrailsのバグですか、それともドキュメントを誤解していますか?withNewSession
自動フラッシュを意味しませんか?