Сохранение связанной сущности в граалях

У меня проблема с сохранением значений формы из двух классов домена

Один класс

 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)
Другие вопросы по тегам