这个添加到grails项目的映射是什么,以确保删除级联?

时间:2011-09-06 19:34:45

标签: grails groovy

我正在尝试添加用户将技能数据库中的某些技能组合在一起的能力。

也就是说,如果我在数据库中拥有Skill对象为“C ++ Programmer”“C ++ Developer”和“C ++”

我有能力摆脱“C ++程序员”和“C ++开发人员”,并将其降低到技能数据库中的“C ++”。这通过遍历所有具有您不想与之关联的技能的数据库对象,将技能设置为“C ++”技能对象,然后删除我们不想保留的技能对象来实现。

我想保留这个记录,以便“C ++”技能知道旧技能“C ++程序员”和“C ++ Developer”被映射到它。

我创建了一个SkillMapping域对象,该对象将保存与Skill关联的那些对象的名称。所以在课堂上我添加了

static hasMany = [mappedSkills:SkillMapping]

在课堂上SkillMapping我添加了

static belongsTo[skill:Skill]

我想要确保的是,如果somone删除了实际的技能,比如说“C ++”,那么映射到“C ++”的任何内容也会被删除。我是否需要向我的域对象添加任何内容以确保发生这种情况?

1 个答案:

答案 0 :(得分:0)

belongsTo确实会删除级联:"saves and deletes cascade from the owner to the dependant (the class with the belongsTo)."

或者使用cascade mapping DSL获得更精细的控制: