2012-08-15 5 views
1

안녕하세요, 특정 속성으로 데이터베이스를 쿼리하고 있습니다. 내 데이터베이스에 여러 항목이 속성에 대해 동일한 값을 가질 수 있지만 그 속성에 대해 고유 한 값을 가진 첫 번째 항목 만 반환 할 싶습니다. 내 도메인이 code 재산이있는 경우grails 고유 항목에 대한 쿼리

예를 들어, 다음 항목 "code" = "boy"가있을 수 있습니다, 다른 한 곳 "code" = "girl"가있을 수 있습니다 다시 "code" = "boy" 또 다른 하나가있을 수 있습니다. 나는 첫 번째 엔트리를 얻을 수 있도록 쿼리하려고합니다. "code" = "boy"과 엔트리는 "code" = girl"이지만 세번째 엔트리는 없습니다. code은 다시 boy과 같습니다.

나는 createCriteria() 또는 namedQueries() 모두는하지만 전체 개체, code 단지 값을 얻을 수 아니에요 사용하여 데이터베이스에서 별개의 code 값을 얻을 수 있었다. 실제 객체를 얻으려면 어떻게해야합니까? I에 대해 생각

+0

내가 객체 데이터를 채우는 작은 id를 가진 하나를 원하는 항목의 각 항목은 ID를 할당됩니다뿐만 아니라 ID 속성이 있습니다 항목이 데이터베이스에 추가되는 순서에 따라 – Ameya

+0

흠 LogSql을 true로 설정 했습니까? GORM이 객체 데이터를 채우는 추가 쿼리를 만드나요? 그렇다면 두 개의 쿼리에서이를 분리 할 수 ​​있습니다. 1 - 다른 코드를 얻는다, 2 - 더 작은 ID로 객체 데이터를 얻는다. –

+0

@ SérgioMichels LogSql은 새로운 항목을 삽입하면 자동으로 ID를 얻습니다. 'min'을 사용하여 오브젝트 데이터를 얻는 방법에 대해 더 설명해 주시겠습니까? – Ameya

답변

0

는 HQL 질의와 함께 제공 :

select d 
    from Domain d 
where d.id = (select min(d1.id) 
       from Domain d1 
       where d1.code = d.code) 
+0

이 작품은 큰 감사드립니다 – Ameya

관련 문제