我想为学生写一个测试应用程序。所以有两种类型的类。Question
包含许多Answer
正确的答案。所以我有一对多和一对一的双向。
class Question extends Entity {
static hasOne = [ acceptedAnswer: Answer ]
static hasMany = [ answers: Answer ]
static mappedby = [ answers: 'parentQuestion' ]
static constraints = {
acceptedAnswer unique: true
}
}
和
class Answer extends Entity {
Question accesptedInQuestion
//one of many answers
static belongsTo = [ parentQuestion: Question] // when ANSWER bidirectional
static constraints = {
}
}
抽象实体是:
package com.medreactor.content.model
import org.bson.types.ObjectId
abstract class Entity {
ObjectId post_id
String posType // Question OR ANSWER
static mapping = {
id column: 'post_id'
}
}
我不断收到错误:
grails> run-app
| Running Grails application
| Error 2013-09-05 10:30:50,805 [localhost-startStop-1] ERROR context.ContextLoader - Context initialization failed
Message: Error creating bean with name 'pluginManager' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is org.codehaus.groovy.grails.exceptions.GrailsDomainException: Property [answers] in class [class com.medreactor.content.model.Question] is a bidirectional one-to-many with two possible properties on the inverse side. Either name one of the properties on other side of the relationship [question] or use the 'mappedBy' static to define the property that the relationship is mapped with. Example: static mappedBy = [answers:'myprop']
怎么了?我正在映射答案,为什么编译器看不到这个?我错过了什么吗?