0

1対多の関係を持つ2つのエンティティがあります。関連エンティティからのデータを含むエンティティから結果を取得する必要があります。これは、私が試したバリアント ウィッチの 1 つです。

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

Json 応答の一部として回答を取得するために Eager Fetching を設定します。

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

この場合、コレクションを取得するために 2 番目のクエリが実行されますが、回答の関連付けは Question インスタンスと同時に読み込まれます。

grails.converters.json.default.deep to trueSergioが上で言ったように、設定を設定します。

于 2013-09-30T20:43:13.117 に答える