【发布时间】:2014-07-28 21:48:40
【问题描述】:
我对 grails 数据绑定所面临的行为感到困惑。我将从控制器代码开始
def saveQuestion(){
QuestionSurvey question = new QuestionSurvey();
bindData(question, params);
question.save();
}
QuestionSurvey 域也看起来像
class QuestionSurvey {
String questionText
QuestionTypeSurvey questionType
static hasMany = [options: QuestionOptionSurvey]
static mapping = {
questionType enumType: 'ordinal'
}
static constraints = {}
}
另外,QuestionOptionSurvey 域看起来像
class QuestionOptionSurvey {
String optionText
static belongsTo = [question: QuestionSurvey]
static constraints = { }
}
我认为绑定适用于所有属性,但不适用于 QuestionSurvey 域中的“选项”字段。我得到的错误是
TypeMismatchException: Provided id of the wrong type for class QuestionOptionSurvey.
Expected class java.lang.Long got java.lang.String. So my question is how to get around
this problem of binding params to a domain that has a field of type set of another domain
class?
params.options 是一个字符串列表,例如 ['option1', 'option2', 'option2']。
【问题讨论】:
标签: java grails data-binding groovy grails-2.0