我希望你能幫助我。谷歌很遺憾沒有幫助我走出這裏我的搜索在計算器沒有以及:-(Grails多對多 - 動態查找器的問題
我有兩個DomainClasses HumanResource和任務有許多一對多的關係。
模型定義:
任務:
class Tasks {
String name
static belongsTo = [HumanResource]
static hasMany = [humanResources: HumanResource]
//also tried but didn't help -> static fetchMode = [humanResources:"eager"]
}
HumanResource:
class HumanResource {
String name
static hasMany = [tasks: Tasks]
}
我也試圖與映射的id字段添加一個索引= {}但我也認爲這不是解決方案,它並沒有幫助,我想已經有一個索引id字段。
所以,我做了什麼,沒有成功,現在是爲給定的任務找到所有的人力資源!這些任務來自服務,並且它們已經在服務模型中用「static fetchMode = [tasks:」eager「]」獲取!
控制器的代碼:
def listHumanResourcesFromTasks = {
def list = HumanResource.findAllByTasks(service.getTasks())
//and I tried also with an own HashMap but didn't work as well
}
我總是得到一個錯誤 「org.springframework.dao.InvalidDataAccessResourceUsageException」 與SQL-GrammarException。但我真的不知道爲什麼。 「service.getTasks()」對象被完全填充(正如我用fetchMode = [tasks:「eager」]寫的)...
如果有人能給我贏得提示,那將是非常棒的。
非常感謝您的時間。
最良好的祝願,
馬爾科
嘿伯特,非常感謝,這工作!但我有一個連續性問題。如果我使用你的解決方案,「人力資源」模型會被完整填充,並且會執行大量不必要的休眠選擇。我怎樣才能用你的解決方案「排除」這個問題,或者我怎樣才能將「收集什麼」委託給你的解決方案?我試過** def resources = service.getTasks()。collect {humanResources.id; humanResources.firstName;人力資源。新名稱} .flatten()作爲設置**,但與此我得到(在5資源的情況下)15結果無序和彼此不相關:-(你能給我一個提示嗎?再次感謝!馬可 – grailsInvas0r