2011-01-24 4 views
0

顔と鼻があり、faceIdに基づいて鼻を取得したいとします。Grails per query 1対1のeagerフェッチ

Grailsのユーザガイドでは、ドメインクラスでmapping = {fetch:join}を使用して顔を取得するたびに、1つのクエリで鼻を熱心に取得する方法を説明します。

しかし、私は熱心にすべての時間をフェッチしたくありません。私はちょうど2つではなく1つのクエリを使用するこの特定の場合にしたいです。これはクエリごとに行うことができますか?次のような方法がありますか? Face.get(faceId、[join:nose])?

答えて

1

あなたが気にいらリンクtahtを意味するか:あなたは基準クエリの問題を解決することができ

static fetchMode = [nose:'eager'] 

here

更新を発見しました。ここでは、クエリでフェッチモードを設定できます。

import org.hibernate.FetchMode as FM 
    def c = MyDomain.createCriteria() 
    def results = c.list { 
     maxResults(10) 
     firstResult(50) 
     fetchMode("aRelationship", FM.EAGER) 
    } 
+0

これは、いつも熱心に鼻をフェッチするように設定します。 1つの特定のクエリに対してのみ行う場合はどうしますか? – Fletch

+0

@ Fletch私は自分の答えを更新しました。これも見てください:http://stackoverflow.com/questions/1436144/eager-loading-queries-with-gorm-hibernate – Medrod

関連する問題