将相关实体保存在grails中

时间:2013-11-12 14:57:39

标签: grails grails-2.0 grails-domain-class grails-controller

我在从两个域类保存表单值时遇到问题

一个班级是

 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)
}

我有一个Controller,用于处理表单中的数据

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 个答案:

答案 0 :(得分:1)

您没有正确关联控制器中的域类:

systems.hoster.name = params.hoster

您需要设置数据库中存在的实例,而不是设置名称:

systems.hoster = Hoster.findByName(params.hoster)