我的Record
域类如下:
Record.groovy
Person person
Schedule schedule
String nameOfRecord
我的RecordService.groovy如下:
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)
}
Person
和Schedule
未保存在Record
表格中。我怎么能保存这些?
我认为问题出在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
答案 0 :(得分:0)
人和日程表未保存在记录表中。我怎么能保存这些?
我认为你的意思是外键对人和日程表没有保存在记录中?如果是这样,以下内容应该有效
def saveRecord(Record record) {
rec.save(flush: true)
}
如果这看起来很神奇,你应该阅读data binding docs,特别是#34;将请求数据绑定到模型&#34;部分。
答案 1 :(得分:0)
@Ilep我认为你要找的是一个hasOne关系: http://grails.org/doc/latest/ref/Domain%20Classes/hasOne.html 它不仅可以处理好关系,还可以处理更好的删除。如果适用,您还应该定义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)