我有一个名为District的域名,我将仅输入地区名称,并且可以正常工作。我还有一个名为Thana的域,在该域​​中我需要使用区号作为外键,因为一个区下有许多thana。我想将thana名称和地区ID保存为thana表中的外键值。这就是为什么我要从组合addThana View 获取区域ID的原因。但是,当我给它赋值时,会给出错误。有人可以帮我吗?这是我的流程如下:

我的地区网域>>

    class District {
    String districtName

    static constraints = {
    }

    static mapping = {
        table('district')
        version(false)
    }
}

我的域名>
    class Thana {

    String thanaName
    District district

    static constraints = {
    }

    static mapping = {
        table('thana')
        version(false)
        district column: 'district_id'
    }
}

我的保存方法>>
def saveThana(){
    println(params)
    Thana thana = new Thana()

    thana.district = params.districtId
    thana.thanaName = params.thanaName
   thana.save()
}

和错误消息>>

最佳答案

这是因为params.districtId是String,并且您将其分配给类型District的属性。

因此,您必须首先检索具有ID的District实例,您可以使用以下代码:

thana.district = District.get(params.districtId?.toLong())

09-26 05:28