0

我有 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]
    }
}

我得到了一个结果

[{"class":"ua.home.testknowledge.Question","id":6,"answers":[],"question":"2+2=?"},...]

但结果我得到了来自实体答案的数据的答案

在java中很容易做到,但是如何用grails做我找不到解决方案。

我想你明白我的意思。

谢谢!

4

2 回答 2

0

我找到了解决方案。该实体在现有表中创建自己的字段,如果从该字段中获取数据,我会收到我想要的数据。

于 2013-10-01T17:33:55.060 回答
0

配置 Eager Fetching 以获得作为 Json 响应的一部分的答案。

class Question {
    int id
    String question
    List<Answer> answers
    static hasMany = [answers : Answer]
    answers lazy: false
    static constraints = {
    }
}

在这种情况下,答案关联将与其 Question 实例同时加载,尽管将执行第二个查询以获取集合。

grails.converters.json.default.deep to true像上面塞尔吉奥所说的那样在你的配置中设置。

于 2013-09-30T20:43:13.117 回答