使用来自第二个实体的数据从一个实体获取数据

时间:2013-09-30 19:13:59

标签: grails entity one-to-many

我有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!

2 个答案:

答案 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)

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