Grails 在域模型中保存编号列表错误?

Grails 在域模型中保存编号列表错误?,grails,gorm,Grails,Gorm,我目前正试图在Grails中保存一个与域模型相关联的数字列表,但不断出现错误。因此,情况是: 我有一个如下所示的客户端域模型,它与下面所示的PhoneNumber域模型有很多关系。有一个视图,其中添加了一组数字,然后将它们存储在字符串[]中,以便在控制器上进行处理 客户端域: class Client { String name List numbers = new ArrayList() //This represents a message belonging

我目前正试图在Grails中保存一个与域模型相关联的数字列表,但不断出现错误。因此,情况是:

我有一个如下所示的客户端域模型,它与下面所示的PhoneNumber域模型有很多关系。有一个视图,其中添加了一组数字,然后将它们存储在字符串[]中,以便在控制器上进行处理

客户端域:

class Client {

    String name

    List numbers = new ArrayList()

    //This represents a message belonging to a single department
    static hasMany = [numbers:PhoneNumbers]

    static constraints = {
        name(blank:false)
    }


}
class PhoneNumbers {

    String number

    //This represents a message belonging to a single department
    static belongsTo = [client:Client]

    static constraints = {
        number(blank:false)
    }


}
电话号码域:

class Client {

    String name

    List numbers = new ArrayList()

    //This represents a message belonging to a single department
    static hasMany = [numbers:PhoneNumbers]

    static constraints = {
        name(blank:false)
    }


}
class PhoneNumbers {

    String number

    //This represents a message belonging to a single department
    static belongsTo = [client:Client]

    static constraints = {
        number(blank:false)
    }


}
正如您所见,客户机有许多电话号码,这些电话号码属于客户机。因此,在我的控制器中,我假设我需要做的就是将这些数字以数组或列表的形式传递给域,它将处理级联保存,我的控制器函数如下:

//This is an array of phone numbers stored in a sesson object as String []
        def numbers = session.getAttribute("phoneNumbers")

        def numbersConvert = numbers as List

        def client = new Client(numbers: numbersConvert, name: params.name)

        if (!client.save()) {
            client.errors.each{
                println(it)
            }
        }
所以上面的控制器,我希望得到我已经确认有值的数字数组,然后把它转换成一个列表。然后保存新的客户机数据并级联保存该客户机在列表中的所有编号。但是,这不起作用,我得到以下错误:

GRAILS-7799: Subtype 'java.lang.String' of reloadable type com.tool.PhoneNumbers is not reloadable: may not see changes reloaded in this hierarchy (please comment on that jira)
| Error 2013-07-30 07:56:50,831 [http-bio-8080-exec-4] ERROR property.BasicPropertyAccessor  - IllegalArgumentException in class: com.smstool.PhoneNumbers, getter method of property: id
| Error 2013-07-30 07:56:50,836 [http-bio-8080-exec-4] ERROR errors.GrailsExceptionResolver  - IllegalArgumentException occurred when processing 
object is not an instance of declaring class. Stacktrace follows:
Message: object is not an instance of declaring class
我也尝试了另一种在控制器内保存数据的方法,如下所示,但这也不起作用:

numbers.each{

            def phoneNumber = new PhoneNumber(number: it).save(flush: true)

            client.addToPhoneNumber(phoneNumber).save(flush: true)

        }
我想我错过了一些愚蠢的事情,这可能是一件非常容易的事情,只是太累了,需要一些帮助


提前感谢

client.addToNumbers(phoneNumber)
而不是
addToPhoneNumber
我现在已经解决了这个问题,谢谢