Grails 保存嵌套对象
我的Grails 保存嵌套对象,grails,groovy,Grails,Groovy,我的记录域类如下: Record.groovy Person person Schedule schedule String nameOfRecord def saveRecord (params) { def personInstance = Person.get(params.record.person.id) def scheduleInstance = Schedule.get(params.record.schedule.id) def nameOfTheR
记录
域类如下:
Record.groovy
Person person
Schedule schedule
String nameOfRecord
def saveRecord (params) {
def personInstance = Person.get(params.record.person.id)
def scheduleInstance = Schedule.get(params.record.schedule.id)
def nameOfTheRecord = params.nameOfRecord
// At this point i want to save my Record. How can i do it
def rec = new Record(params)
rec.save(flush: true)
}
我的RecordService.groovy如下所示:
Record.groovy
Person person
Schedule schedule
String nameOfRecord
def saveRecord (params) {
def personInstance = Person.get(params.record.person.id)
def scheduleInstance = Schedule.get(params.record.schedule.id)
def nameOfTheRecord = params.nameOfRecord
// At this point i want to save my Record. How can i do it
def rec = new Record(params)
rec.save(flush: true)
}
人员
和计划
未保存在记录
表中。我怎样才能保存这些
我想问题出在def rec=new Record(params)
上,我没有保存
scheduleInstance
和personInstance
。如何解决这个问题
更新
<g:form controller="record" action="save">
<g:hiddenField name="record.person.id" value="${record.person.id}" />
<g:hiddenField name="record.schedule.id" value="${record.schedule.id}" />
... And other input field
... 和其他输入字段
人员和计划未保存在记录表中。我怎样才能保存这些
我想你是说记录中没有保存个人和日程表的外键?如果是这样的话,下面的方法应该有效
def saveRecord(Record record) {
rec.save(flush: true)
}
如果这看起来很神奇,您应该阅读,特别是“将请求数据绑定到模型”一节 @Ilep我想你要找的是一种hasOne关系: 它不仅能更好地处理关系,还能更好地处理删除。如果适用,还应定义BelongsTo关系 您的语法也有问题:
def personInstance = Person.get(params.record.person.id)
def scheduleInstance = Schedule.get(params.record.schedule.id)
def nameOfTheRecord = params.nameOfRecord
// At this point i want to save my Record. How can i do it
def rec = new Record(params)
应该是:
def personInstance = Person.get(params.record.person.id)
def scheduleInstance = Schedule.get(params.record.schedule.id)
def nameOfTheRecord = params.nameOfRecord
// At this point i want to save my Record. How can i do it
def rec = new Record(person: personInstance, schedule: scheduleInstance, name: nameOfTheRecord)
实际上,我正在从view类中获取值。我已经更新了我的代码。因此,在这种情况下,我必须检索值
params
属性。因此,在这种情况下,我无法使用def saveRecord(Record Record){}
@Illep抱歉,我不理解您的评论