나는 (Groovy/Grails에서) 누군가가 나를 도울 수 있기를 바라는 HQL 질문을 가지고있다.Hibernate HQL과 Grails- 컬렉션을 어떻게 비교합니까?
1 대 1 태그 모음이있는 간단한 Asset 개체가 있습니다.
사용자는params.tags
일부 태그에 전달
: 나는 HQL에서 할 노력하고있어 무엇
class Asset { Set tags static hasMany = [tags:Tag] }
class Tag { String name }
(예 : 그루비 Grails의 바위) 및 자산을 (반환하고 싶어들) 그 태그를 가지고 그 정확한 태그.
SELECT DISTINCT a FROM Asset a LEFT JOIN a.tags t WHERE t.name IN (:tags)
assetList = Asset.executeQuery(hql, [tags:tokenizedTagListFromParams]
위의 코드는 완벽하게 작동하지만 정말 OR
같은 :
정확히 동일한 태그가있는 자산 만 반환하려고합니다.
새 태그가 생성 될 때마다 I new Tag(name:xxx).save()
태그 요청과 각 태그에 대해 고유 한 ID 인스턴스를 얻을 수 있습니다.
또한 전달 된 태그를 각 태그에 대해 Tag.findByName(t1)
의 Tag 인스턴스 목록으로 변환하고 위의 HQL에 (고유 한) 태그 ID 목록을 추가로 변환 해 보았습니다.
나는 도움이나 조언을 부탁드립니다.
재미있는 것은 원래 오류가 실제로 내가 만들고 싶었던 행동 이었기 때문에 실제로 문제를 해결했습니다. – nhouser9