имеет ли смысл каскадировать до владельцев в отношениях принадлежности?

  • У меня есть класс Skill, в котором много ролевых навыков.
  • У меня есть класс RoleSkills, который принадлежит роли и навыку.
  • У меня есть класс ролей, который имеет много навыков роли.

Для роли у меня есть сопоставление, которое каскадно связывает операции с ролевыми навыками. Вопрос в том, есть ли смысл для RoleSkills «каскадировать» обратно в Skill?

Я в основном хочу, чтобы RoleSkill создавал новый навык при его создании, но если RoleSkill будет удален, оставьте класс Skill (они в основном одинаковы, но как только один человек создает RoleSkill, я хочу, чтобы этот навык был доступен для других людей использовать).

В Grails всякий раз, когда я создаю новую роль и назначаю ей RoleSkill, я получаю сообщение о том, что RoleSkill.skill имеет значение null, поэтому мне нужно найти способ каскадировать «вверх» для создания нового навыка всякий раз, когда создается новый RoleSkill. .


person Derek    schedule 28.09.2010    source источник
comment
Или, может быть, это нужно просто переписать как отношения Родитель-потомок отличных объектов?   -  person Derek    schedule 28.09.2010


Ответы (1)


Я думаю, вам нужно добавить некоторую логику в конструктор 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.
   }
}

Прежде чем пробовать эту реализацию, дважды проверьте справочную документацию. Надеюсь, это укажет вам правильное направление.

person Matt Lachman    schedule 29.09.2010