来自多个域的Grails查询

时间:2013-04-27 02:34:50

标签: sql hibernate grails hql gorm

我有问题。如果可以,请帮助我。

我有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查询。

1 个答案:

答案 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"))