Mongodb Grails GORM Mongo有许多未保存的关联
我有一个具有一对多关联的域类。看起来是这样的:Mongodb Grails GORM Mongo有许多未保存的关联,mongodb,grails,groovy,gorm,Mongodb,Grails,Groovy,Gorm,我有一个具有一对多关联的域类。看起来是这样的: class FormResponse { static String DRAFT = 'Draft' static String SUBMITTED = 'Submitted' static String REJECTED = 'Rejected' static String APPROVED = 'Approved' static mapWith = "mongo" ObjectId id
class FormResponse {
static String DRAFT = 'Draft'
static String SUBMITTED = 'Submitted'
static String REJECTED = 'Rejected'
static String APPROVED = 'Approved'
static mapWith = "mongo"
ObjectId id
Date dateCreated
Date lastUpdated
User createdBy
User updatedBy
Form form
String currentStatus = DRAFT
List<FormSectionResponse> formSectionResponses
List<FormResponseComment> formResponseComments
static hasMany = [ formSectionResponses: FormSectionResponse, formResponseComments: FormResponseComment ]
static mapping = {
}
static constraints = {
updatedBy nullable: true
}
}
def saveFormResponse(FormResponse formResponse) {
def saved = formService.saveFormResponse(formResponse)
respond(saved)
}
我有一个保存此对象的控制器方法,如下所示:
class FormResponse {
static String DRAFT = 'Draft'
static String SUBMITTED = 'Submitted'
static String REJECTED = 'Rejected'
static String APPROVED = 'Approved'
static mapWith = "mongo"
ObjectId id
Date dateCreated
Date lastUpdated
User createdBy
User updatedBy
Form form
String currentStatus = DRAFT
List<FormSectionResponse> formSectionResponses
List<FormResponseComment> formResponseComments
static hasMany = [ formSectionResponses: FormSectionResponse, formResponseComments: FormResponseComment ]
static mapping = {
}
static constraints = {
updatedBy nullable: true
}
}
def saveFormResponse(FormResponse formResponse) {
def saved = formService.saveFormResponse(formResponse)
respond(saved)
}
以及服务方法:
def saveFormResponse(response) {
return response.save(flush: true, failOnError: true)
}
当我发布到该方法时,我可以看到formResponseComments列表按我预期的方式填充:
并保存FormResponseComment:
但是FormResponse对象未接收到与子FormResponseComment的关联:
class FormResponseComment {
static mapWith = "mongo"
ObjectId id
Date dateCreated
Date lastUpdated
User createdBy
String comment
static belongsTo = [FormResponse]
static mapping = {
}
static constraints = {
}
}
那么,为什么协会不是在这里成立的呢
Grails 3.3.3.通过向FormResponseComment域类添加反向引用进行修复,如下所示:
class FormResponse {
static String DRAFT = 'Draft'
static String SUBMITTED = 'Submitted'
static String REJECTED = 'Rejected'
static String APPROVED = 'Approved'
static mapWith = "mongo"
ObjectId id
Date dateCreated
Date lastUpdated
User createdBy
User updatedBy
Form form
String currentStatus = DRAFT
List<FormSectionResponse> formSectionResponses
List<FormResponseComment> formResponseComments
static hasMany = [ formSectionResponses: FormSectionResponse, formResponseComments: FormResponseComment ]
static mapping = {
}
static constraints = {
updatedBy nullable: true
}
}
def saveFormResponse(FormResponse formResponse) {
def saved = formService.saveFormResponse(formResponse)
respond(saved)
}
static belongsTo=[formResponse:formResponse]