Grails CreateCriteria从表中选择disitinct over

Grails CreateCriteria从表中选择disitinct over,grails,hibernate-criteria,grails-2.5,Grails,Hibernate Criteria,Grails 2.5,我将grails 2.5.6与IntelliJ IDEA 2017.2.4结合使用 我的标准有问题 Book.createCriteria().listDistinct{ person{ address{ eq("id", 5) } } } 我怎样才能写出这本书的投影图 正常条件创建SQL时使用: 选择“作为内部联接从书本中删除*”… 但我需要这样的SQL: 从书本中选择不同的b.*作为b 如何在createCriteri

我将grails 2.5.6与IntelliJ IDEA 2017.2.4结合使用

我的标准有问题

Book.createCriteria().listDistinct{
    person{
        address{
            eq("id", 5)
        }
    }
}
我怎样才能写出这本书的投影图

正常条件创建SQL时使用:

选择“作为内部联接从书本中删除*”…

但我需要这样的SQL:

从书本中选择不同的b.*作为b

如何在createCriteria中实现此投影? 或者我应该使用带有条件的子选择?
(我不想使用HQL)


谢谢,马文

我的班级:

class Book{
    //other stuff
    static hasMany = [person: Person]
}

class Person{
    //other stuff
    static hasMany=[address: Address]
}

class Address{
    //other stuff
}

我看到您正在使用查询关联。为了帮助您,您能告诉我book、person、address之间的关联吗?您不能在多个域上执行grails创建条件,或者您应该在域之间建立一个类似于多个域的关联,有一个属于etc。或者您需要使用HQL执行这种连接查询。HIbernate SQL是进行跨表查询的方法。我看到您使用的是查询关联。为了帮助您,您能告诉我book、person、address之间的关联吗?您不能在多个域上执行grails创建条件,或者您应该在域之间有一个关联,如有多个、有一个属于等。或者您需要使用HQL执行这种连接查询。HIbernate SQL是跨表查询的方法。