我有问题。如果可以,请帮助我。
我有3个域名:
class DomainA {
long id
String propA1
String propA2
static hasMany = [domaniBs:DomainB]
}
class DomainB {
long id
String propB1
String propB2
static belongsTo = [forgeinKeyToDomainA:DomainA]
static hasMany = [domaniCs:DomainC]
}
class DomainC {
long id
String propC1
String propC2
static belongsTo = [forgeinKeyToDomainB:DomainB]
}
想要从DomainC获取propA1 =“value1”
的所有记录映像SQL代码:
Select DomainC.*
from DomainA,DomainB,DomainC
where DomainA.id=DomainB.forgeinKeyToDomainA
and DomainB.id=DomainC.forgeinKeyToDomainB
and DomainA.propA1="value1"
可以用grails执行SQL代码,但想使用Hibernate查询。
答案 0 :(得分:0)
像这样。
HQL:
DomainC.executeQuery("""
Select c
from DomainA a join a.domainB b join b.domainC c
where a.propA1 = "value1"
""")
动态查找器
DomainC.findAllByDomainBInList(DomainB.findAllByDomainAInList(DomainA.findAllByPropA1("value1"))