나는 너희들이 나를 도울 수 있기를 바랍니다. 구글은 불행히도 나를 데 도움이 유래에서 여기 내 검색이 나는 대다 관계.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-field.
그래서 내가 한 일은 아니지만 주어진 일에 필요한 모든 인적 자원을 찾을 수 있습니다. 그리고 그 업무는 서비스에서 나오고 "정적 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; humanResources.lastName} .flatten()을 Set **로 설정했지만이 경우 (5 개 리소스의 경우) 15 개의 결과가 정렬되지 않고 서로 관련이 없습니다 .-(나에게 힌트를 줄 수 있습니까? – grailsInvas0r