0
時下面是我的領域類需要禁用Grails的延遲加載讀取結果
class Sender {
String senderFname;
String senderLname;
String senderPhone;
Collection receivers
static hasMany = [receivers: Receiver]
}
class Receiver {
String receiverFname;
String receiverLname;
String receiverPhone;
static belongsTo = [sender: Sender]
}
我寫邏輯進行簡單的搜索功能。
def customers() {
println 'customers params '+params
//def senderCriteria = Sender.createCriteria()
def senderList = Sender.withCriteria {
if(params.senderfname)
like('senderFname',params.senderfname)
if(params.senderlname)
like('senderLname',params.senderlname)
if(params.senderphone)
like('senderPhone',params.senderphone)
createAlias("receivers", "t")
//receivers {
if(params.receiverfname)
like('t.receiverFname',params.receiverfname)
if(params.recieverlname)
like('t.receiverLname',params.receiverlname)
if(params.recieverphone)
like('t.receiverPhone',params.receiverphone)
//}
}
println "senderList "+senderList;
senderList.each{ it-> println 'sender '+it
println 'receivers '+it.receivers
}
//senderList = senderList.unique()
println "senderList "+senderList;
render(view: 'customers', model: [senderList: senderList])
}
從發件人到收件人之間存在一對多的關係。我想過濾發件人對象及其相應的接收者對象。
主createCriteria返回發件人對象的預期結果。但是,當我訪問發送者對象以獲取相應的接收者時,它將再次從數據庫加載所有接收者。
有什麼辦法可以解決這個問題。
您希望禁用_Lazy Loading_,而不是預先抓取。 – cdeszaq
@cdeszaq得到了,我很困惑。現在我明白了,我正在編輯我的問題。 –
你可以在這裏閱讀關於GORM-fethcing的內容:http://grails.org/doc/latest/guide/GORM.html#fetching你應該在那裏找到你的答案。我不太明白這個問題。希望能幫助到你。 – marko