두 테이블간에 조인 테이블을 사용하여 다 대 다 관계가 있습니다. 나는 몇몇 아이들 기록을 제외하고 부모와 날짜에 기초를 둔 5 명의 무작위 아이들을 선정 할 수있을 것입니다 필요가 있습니다. 나는 붙어있다. 어떤 아이디어?namedQuery와 다 대다 관계의 임의의 레코드를 가져 오는 중
Parent {
static hasMany = [children: Child]
}
Child {
Date dob
static belongsTo = [Parent]
static hasMany = [parents: Parent]
static namedQueries {
randomFiveChildrenBornAfter { parentid, dob, excludeChildren->
qt 'dob', dob
parents {
eq 'id',parentid
}
// not in(excludeChildren) ?? order by rand() ??
}
}
}
감사합니다. 불행히도 리터럴이 아닌 부모 객체는 수천 개의 자식을 가질 수 있으므로 메모리 사용량이 비쌉니다. criterias를 사용하는 쿼리로 수행하는 방법은 무엇입니까? – Micor
그런 경우 데이터베이스에서해야 할 것입니다. 불행히도, 임의의 행을 가져 오는 데이터베이스에 독립적 인 방법은 없습니다. 제한이있는 임의의 행을 가져 오는 HQL 기준을 작성하는 방법에 대한 자세한 내용은이 stackoverflow 게시물을 참조하십시오. http://stackoverflow.com/questions/2810693/hibernate-criteria-api-get-n-random-rows –
깔끔한 트릭 sqlRestriction. 그것은해야 할 것입니다. 감사. – Micor