我有2个实体,关系是一对多的。我需要从关系实体的数据中获取实体的结果。这是我尝试的变种之一
class Question {
int id
String question
List<Answer> answers
static hasMany = [answers : Answer]
// static mappedby = [ answers: 'QuestionID' ]
static constraints = {
}
}
class Answer {
int id
String answer
boolean isCorrect
static belongsTo = Question
// static belongsTo = [ question: Question]
// Question question
static constraints = {
}
}
查询后
class QuestionController {
def index() {
def questionList = Question.findAll() as JSON
[questionList: questionList]
}
}
我得到了一个结果
[{ “类”: “ua.home.testknowledge.Question”, “ID”:6, “回答”:[], “问题”: “2 + 2 =”},...] < / p>
但是在结果中我从实体答案
获得数据的答案在java中,这很容易,但是如果用grails做,我找不到解决方案。
我想你明白我的意思。
THX!
答案 0 :(得分:0)
onfiguring Eager Fetching以获得作为Json响应的一部分的答案。
class Question {
int id
String question
List<Answer> answers
static hasMany = [answers : Answer]
answers lazy: false
static constraints = {
}
}
在这种情况下,答案关联将与其Question实例同时加载,尽管将执行第二个查询以获取集合。
并按照Sergio上面的说法在您的配置中设置grails.converters.json.default.deep to true
。
答案 1 :(得分:0)
我找到了解决方案。这个实体在现有表中创建自己的字段,如果从这些字段中获取数据,我会收到我想要的数据。