したがって、以下のように互いに hasMany 関係にあるドメイン内にいくつかのオブジェクトがあります
Class Car {
String name
SortedSet tires = [] as SortedSet
static hasMany = [tires: Tire]
}
Class Tire {
String type
SortedSet screws = [] as SortedSet
static hasMany = [screws: Screw]
}
Class Screws {
String type
}
ここで、findByName で取得できる特定の種類の車のオブジェクト ツリー全体をオフラインにしたいと考えています。ファインダーでフェッチ エイジャーを実行できることはわかっていますが、それは 1 レベルだけ下がります。例のように、2 レベル以上あります。
だから私の質問はこれです。オブジェクト ツリー全体を熱心にフェッチし、grails/Hibernate が別のクエリを起動して詳細をフェッチすることなく、それを使用するエレガントなソリューションはありますか。
同様の結果が得られるように見える次のことを試しましたが、エレガントではありません。
withCriteria ソリューション
def cars = Car.withCriteria {
tires {
screws {
join 'screws'
}
}
また、ツリー全体を JSON に変換して再解析しようとしましたが、それはやり過ぎのようです。基本的に、オブジェクト ツリー全体をオフラインにしようとしていると思います。これが簡単に、またはまったく実行できるかどうか、何か考えはありますか?
ティア