学生向けのテストアプリケーションを書きたいです。そのため、クラスには 2 つのタイプがあります。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']
なにが問題ですか?答えをマッピングしているのに、コンパイラがこれを認識しないのはなぜですか? 何か不足していますか?