Добрый день.
Столкнулся с следующей проблемой: Есть 4 Domain class'a
Employee:
package personnel_grails
class Employee {
  String name
  String surname
  String patronymic
  Status status
  Positions positions
  static constraints = {
    surname(maxLenght: 40, blank: false)
    name(maxLenght: 40, blank: false)
    patronymic(maxLenght: 40, blank: false)
    status(nullable: false)
    positions(nullable: false)
  }
  String toString(){
    "${this.surname} ${this.name} ${this.patronymic}"
  }
}
Positions:
package personnel_grails
class Positions {
    String positions
    static constraints = {
    }
  String toString(){
    "${this.positions}"
  }
}
Status
package personnel_grails
class Status {
    String status
    static constraints = {
    }
  String toString(){
    "${this.status}"
  }
}
Statistic:
package personnel_grails
class Statistic {
  Employee employee
  Positions positions
  Status status
  Date date = new Date()
    static constraints = {
    }
}
Необходимо чтобы при добавлении/изменении таблицы employee добавлялась соттветствующая запись в таблицу Statistic
Пока сделал так (в контроллере employee):
    def save = {
        def employeeInstance = new Employee(params)
        if (employeeInstance.save(flush: true)) {
          def statisticInstance = new Statistic()
          statisticInstance.employee = Employee.findById(employeeInstance.id)
          statisticInstance.positions = Positions.findById(params.positions.id)
          statisticInstance.status = Status.findById(params.status.id)
          statisticInstance.save()
.....
}
Но это далеко не самое оптимальнное решение (лишних 4 запроса к БД).
Как можно оптимизировать?