Сохранение связанной сущности в граалях
У меня проблема с сохранением значений формы из двух классов домена
Один класс
class Ip {
String inetAddress
String dns
String os
String toString(){
"${inetAddress}"
}
Hoster hoster
static constraints = {
....
а второй просто
class Hoster {
static HOSTER_OPTIONS = ["Name1", "Name2", "Name3"]
String name;
String toString(){
"${name}"
}
List ips = new ArrayList()
static hasMany = [ips : Ip]
static constraints = {
name(unique: true, blank: false, inList: HOSTER_OPTIONS)
}
У меня есть контроллер, где я обрабатываю данные из формы
def systems = new Ip()
systems.inetAddress = params.ip
systems.dns = params.dns
systems.os = params.os
systems.hoster.name = params.hoster
def result = systems.save(flush: true, failOnError: true)
Но мне не удалось, что данные сохранены.
1 ответ
Решение
Вы неправильно связываете свои доменные классы в контроллере:
systems.hoster.name = params.hoster
Вместо того, чтобы устанавливать имя, вам нужно установить экземпляр, который существует в базе данных:
systems.hoster = Hoster.findByName(params.hoster)