Grails / Зарплата сотрудника GORM

#grails #grails-orm

#grails #grails-orm

Вопрос:

Я новичок в Grails и пытаюсь разработать веб-приложение. Я добивался довольно приличного прогресса, пока не столкнулся с проблемой добавления нового сотрудника с новой зарплатой. У меня есть класс домена Person, класс домена Employee и класс домена Salary. Все они перечислены ниже.

 class Person {
 String firstName, lastName
 String email
 String phoneNumber
 Employer employer 

 }

class Employee extends Person {
 Date birthdate
 JobTitle jobTitle 

 static hasMany = [salary: Salary]

}

class Salary {
 Employee employee
 double salary
 Date from_date
 Date to_date
  

Теперь, когда я создаю нового сотрудника, я не могу добавить новую зарплату только для этого человека, только для сотрудников, которые уже есть в базе данных. Мы будем признательны за любую помощь!

Ответ №1:

Глядя на ваш код, я могу предположить, что он Salary должен содержать Person идентификатор s вместо Employee .

 class Salary {
  Person person
  double salary
  Date from_date
  Date to_date
}
  

С другой стороны, если вы хотите Employee поддерживать отношения с Salary , то hasMany свойство должно быть:

 class Person {
  String firstName, lastName
  String email
  String phoneNumber
  Employer employer 

}

class Employee extends Person {
  Date birthdate
  JobTitle jobTitle 

  static hasMany = [salary: Salary]
}

class Salary {
 Employee employee
 double salary
 Date from_date
 Date to_date
}
  

Имейте в виду, что эти изменения повлияют на вашу базу данных. Я рекомендую взглянуть на миграцию БД.