2012-08-15 74 views
1

嗨我想通过特定的属性查询我的数据库。我的数据库中的多个条目可能具有相同的属性值,但我希望它只返回具有该属性的不同值的第一个条目。grails查询不同条目

例如,如果我的域名有一个code属性,则有可能是一个条目,其中"code" = "boy",并且有可能是另外一个地方"code" = "girl",有可能是又一个一个地方再次"code" = "boy"。我想查询它,所以我得到的第一个条目"code" = "boy"和条目"code" = girl"但不是第三个条目,其中code再次等于boy

我能够从使用这两种createCriteria()namedQueries()但我不能够得到整个对象的code只值数据库中获取的不同code值。我怎样才能得到实际的物体?

+0

我想一个编号小填充对象数据,每个条目都有一个id属性为好,进入被分配的ID取决于将条目添加到数据库的顺序 – Ameya 2012-08-15 18:58:48

+0

hmmm您将logSql设置为true? GORM使用额外的查询来填充对象数据?如果是这样,你可以将它分成两个查询。 1 - 获得不同的代码,2 - 通过较小的ID获取对象数据,使用'min'。 – 2012-08-15 19:06:50

+0

@SérgioMichels什么是logSql,是当你插入一个新的条目,它会自动获得一个ID?你能否更详细地解释我如何使用'min'来获取对象数据。 – Ameya 2012-08-15 19:10:45

回答

0

约我思考的时候,一种HQL查询:

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

这项工作非常感谢 – Ameya 2012-08-15 21:13:31