我正在尝试添加用户将技能数据库中的某些技能组合在一起的能力。
也就是说,如果我在数据库中拥有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 ++”的任何内容也会被删除。我是否需要向我的域对象添加任何内容以确保发生这种情况?
答案 0 :(得分:0)
belongsTo
确实会删除级联:"saves and deletes cascade from the owner to the dependant (the class with the belongsTo)."。
或者使用cascade mapping DSL获得更精细的控制: