在belongsTo关系中将“up”级联到所有者是否有意义?

时间:2010-09-28 17:47:55

标签: hibernate nhibernate-mapping gorm grails

  • 我有一个Skill类,它有很多RoleSkills。
  • 我有一个RoleSkills类,属于Role and Skill
  • 我有一个具有多个RoleSkills
  • 的Role类

对于Role,我有一个将操作级联到RoleSkills的映射。问题是,RoleSkills是否有意“重组”回Skill?

我基本上想让RoleSkill在创建时创建一项新技能,但如果RoleSkill被删除,请离开Skill类(它们基本相同,但是一旦有人成为RoleSkill,我希望该技能可用供其他人使用)。

在grails中,每当我创建一个新角色并为其分配一个RoleSkill时,我收到一条关于RoleSkill.skill为null的消息,因此我需要找到一种方法来“up”级联以创建一个新的技能RoleSkill已经完成。

1 个答案:

答案 0 :(得分:0)

我认为你需要为RoleSkill构造函数添加一些逻辑。我不确定这在实践中会如何起作用,但理论上你可以尝试类似的东西:

class Skill {
   String name
   static hasMany = [roleSkills:RoleSkill]
}

class Role {
   String name
   static hasMany = [roleSkills:RoleSkill]
}

class RoleSkill {
   static belongsTo = [role:Role,skill:Skill] //I don't think this works based on the reference docs.
   public RoleSkill() {
      skill = new Skill() //This can later be changed to an existing Skill.
   }
}

请在尝试此实施时仔细检查reference documentation。希望它能指出你正确的方向。