내가 어떤 태그 속성 수있는 간단한 수준의 노래,이 : 그럼Grails는이 매개 변수 목록이 많은 관계로 많은으로 도메인 객체를 찾을 수
class Song {
String title
static hasMany = [tags:Tag]
}
을, 내가 찾을 수 있도록하고 싶습니다 내가 가지고있는 경우, 예를 들어
List<Song> results = Song.findAll("where tags contains ?", [myTagList]);
: 모든 노래는 예를 들어이의 모습, 태그의 주어진 목록을 가진
a Song S1 with tags T1
a Song S2 with tags T1 T2 T3
a Song S3 with tags T1 T3
a Song S4 with tags T1 T2 T3 T4
그리고 myTagList containing T1, T2, T3
으로 쿼리를 실행하면 호출은 S2 and S4
을 반환합니다.
이것을 수행하는 효율적인 방법이 있습니까? 과 기준을 사용하는 것이 가능해야
이 호출의 복잡성을 알고 계십니까? 예를 들어베이스에 수천 곡의 노래가있는 경우 전체 노래 목록을 가져온 전화를 피하고 일치를 찾기 위해 반복합니다. –
느린 회신을 드려 죄송합니다. 좀 더 연구를 해보려고했지만, 이것은 그레이스 반복을 사용하지 않는 SQL in 문을 사용하여 태그가 일치하는 노래 목록을 반환해야합니다. – bschipp
솔루션을 사용해 보셨습니까? 어쩌면 내가 잘못한 것을했을 수도 있지만 내 편에서 시도해 보니 분명히 작동하지 않습니다. 예상되는 것은 첫 번째 매개 변수로서 간단한 클래스 속성 (목록이 아니어야 함)과 우리가 속성을 찾고자하는 목록입니다. 필자의 경우에는 꽤 반대이다. (필자는 "tags"에 myTagList를 포함하고 싶다.) 두 매개 변수 모두에리스트가있다. Grails 문서의 예제 : 'in'("age", [18..65]) –