[Grails] 一对多关系怎样才能取消级联更新

shinewang 2008-11-27
需要实现以下功能
比如论坛的两个Topic(主题)和Post(回复)类,Topic与Post为一对多关系,通过数据库中Post表中的topic_id相关联,需要更新和删除topic时都不级联更新和删除post。在grails试了几种方法都不行,比如:

class Topic {
    String title
    String body
    static hasMany = [ posts : Post ]
}

class Post {
    String body
    static belongsTo = Topic
}

或者
class Topic {
    String title
    String body
    static hasMany = [ posts : Post ]
}

class Post {
    String body
    Topic topic
}

有没有什么办法解决?
wusema 2008-11-28
给你一种折中的可选的办法,纯属个人意见:
把要删除的Topic(主题)下的所有Post(回复)转移至另外一个叫“已被删除的主题的回复”的主题的ID下,你看如何?
shinewang 2008-11-28
我想问的不是在删除topic时相关的post不删除的怎么办问题,而是取消级联更新,因为按上面的第一段代码那样写,当从数据库中取得某个topic(包括它下面的post),修改title后执行topic.save()时会把这个topic和它下面的posts全部update,也就是N+1个update,而我只想update topic而不update下面的post。
Global site tag (gtag.js) - Google Analytics