1

私はトレーニングドメインクラスを持っています

    class Training {

     String type
     Date createdOn
     Date modifiedOn

    static belongsTo = [course: Course]
    static hasMany = [attachments: Attachment]
  }

私は Course ドメインクラスを持っています

     class Course {

          String name

          static hasMany = [trainings: Training, tracks: Track]
          static belongsTo = Track
   }

ドメイン クラスの追跡

    class Track {
        String name 
    }

トラックに基づいてトレーニングを選択したい。

ここで、トラック ID を取得し、トラック ID に基づいてトレーニングを取得したいとします。

私はこのようなものをクエリしようとしました

 def query = "FROM Training AS t WHERE  t.course.tracks.id IN (1,2)"
  trainingList = Training.findAll(query)

それは与えます

 illegal attempt to dereference collection

エラー..できないのでt.course.tracks.id

トラック ID (1、2 など) がある場合にトレーニングを取得するための正しい hql クエリを作成するのを手伝ってください。

4

2 に答える 2

0

できることはこれ

def query = "FROM Training AS t join t.course as c join c.tracks as tr WHERE  tr.id IN (1,2)"
trainingList = Training.findAll(query)

問題は、1 つから複数に移行しようとする場合です。

于 2013-08-22T00:21:47.523 に答える
-1

tracid 1および2のすべてのトレーニングを取得するには、HQLの下を見つけてください。

コースc、トラックtr、トレーニングtから、tr.courceid=c.courceidおよびtr.trackid=c.tracidおよびtr.trackid((1,2))

于 2012-09-13T13:18:18.060 に答える