Hibernate 如何对GORM子文档字段进行独特的查询?

Hibernate 如何对GORM子文档字段进行独特的查询?,hibernate,grails,gorm-mongodb,Hibernate,Grails,Gorm Mongodb,给定Grails 2.3.8和Mongo 2.6.0,以及这个(简化的)域类: db.account.findOne() { "name":"Test Account", "customer": { "state": "CA" } } 其中每个帐户都有一个带有“状态”字符串的客户子文档。要获得所有客户的所有州列表,我想做如下操作: def states = Account.createCriteria().list { projections{

给定Grails 2.3.8和Mongo 2.6.0,以及这个(简化的)域类:

db.account.findOne()
{
    "name":"Test Account",
    "customer": {
        "state": "CA"
    }
}
其中每个帐户都有一个带有“状态”字符串的客户子文档。要获得所有客户的所有州列表,我想做如下操作:

def states = Account.createCriteria().list {
    projections{
        distinct("customer.state")
    }
}
但由于存在一个bug,它无法工作-

有解决办法吗

我可以这样做:
Account.collection.distinct(“customer.state”)
但是有没有更符合Grails标准的方法呢?

您可以使用“Criteria.DISTINCT\u ROOT\u ENTITY”作为DISTINCT记录

def users = Account..withCriteria {
        resultTransformer Criteria.DISTINCT_ROOT_ENTITY
}