4
所以我必須在域中處於相互如下渴望獲取Grails的整個對象樹
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
}
一個的hasMany關係的幾個對象,現在,我想借此對整個對象樹離線我可以通過findByName獲得某種汽車。我知道我們可以對取景器做一個渴望,但那只是一個級別。正如在例子中我有2個或更多的水平。
所以我的問題是這樣的。有沒有一個優雅的解決方案,急於獲取整個對象樹,然後在沒有grails/Hibernate的情況下使用它來觸發另一個查詢來獲取細節。
我嘗試了以下似乎有相似的結果,但幾乎沒有優雅。
的withCriteria解決方案
def cars = Car.withCriteria {
tires {
screws {
join 'screws'
}
}
我也試過整個樹轉換成JSON和重新分析,但是,這似乎是矯枉過正。我想基本上我試圖讓整個對象樹離線。任何想法,如果這可以輕鬆完成或完成?
TIA
這絕對是一個選項,除非我希望這隻發生在特殊情況下,而不是所有其他呼叫的常規行爲。這就是爲什麼我要避免更新域名。 – bythe4mile
我想你可以嘗試用hql獲取,但與withCriteria解決方案相比,它幾乎不會更優雅。請記住,您可以將您的實際解決方案以靜態方法封裝到域類中,然後創建單元測試並重新提煉。 –
我想。如果在grails中有一種方法可以將對象從字面上脫機,那本來就不錯。我也嘗試克隆它,但是當你進入樹中時它變得太複雜了。 – bythe4mile