私はあなたが私を助けることを願っています。タスクは、多対多の関係で、私は2 DomainClasses HumanResourceとを持っているGoogleが、残念ながら私を助けていなかったし、ここにStackOverflowの私の検索はGrails多対多 - 動的ファインダの問題
:-(にもしませんでした。
モデルの定義:
タスク:
class Tasks {
String name
static belongsTo = [HumanResource]
static hasMany = [humanResources: HumanResource]
//also tried but didn't help -> static fetchMode = [humanResources:"eager"]
}
HumanResource:私も= {}マッピングにIDフィールドにインデックスを追加しようとしましたが、私もそれが解決策ではないと思う
class HumanResource {
String name
static hasMany = [tasks: Tasks]
}
、それは助けにはならなかったと私は、インデックスには、すでにあると思いますidフィールド。
私がやったことではなく、与えられた仕事のためのすべての人材を見つけることです!そしてタスクはサービスから来ており、それらはすでに "静的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
}
私は常にSQL-GrammarExceptionでエラー "org.springframework.dao.InvalidDataAccessResourceUsageException" を取得します。しかし、私は本当に理由を知らない。 "service.getTasks()"オブジェクトは完全に埋められています(fetchMode = [tasks: "eager"]と書いたように)...
誰かが私に勝利のヒントを与えることができたら素晴らしいでしょう。
ありがとうございます。
幸運を祈り、
ヘイバート、ありがとう、その作品!しかし、私は継続的な質問があります。あなたのソリューションを使用すると、 "HumanResource"モデルが完全に満たされ、多くの不必要な休止状態の選択が実行されます。ソリューションでこれを「除外」する方法、またはソリューションで「収集するもの」をどのように委任できますか?私は** def resources = service.getTasks()を試みました。{humanResources.id; humanResources.firstName;私はヒントを与えることができますか?もう一度おねがいします!Marco(英語) – grailsInvas0r