GORM / Grails Глубоко четкие критерии запроса ассоциации - PullRequest
0 голосов
/ 11 февраля 2011

У меня есть доменные объекты для каждой таблицы, указанной в запросе ниже. У меня проблемы с созданием замыкания withCriteria, представляющего запрос SQL ниже. Какие-нибудь мысли? Спасибо! Стив

SQL-запрос:

select A_NAME from A 
where A_XID = 
  (select A_XID from B
   where B_XID = 
     (select distinct B_XID from C
      where D_XID = '${d.dXid}')

Доменные объекты:

class A {
  String aName
  BigDecimal aXid         <-- unique identifier
}

class B {
    A a
    BigDecimal bXid   <-- unique identifier
}

class C {
    D d
    B b
}

1 Ответ

1 голос
/ 11 февраля 2011

Я не уверен, как это сделать с запросом критерия, но в HQL это будет

String aName = A.executeQuery(
   'select c.b.a.aName from C c where c.d = :d',
   [d: d])[0]

но вы упустили много информации, так что это основано на предположении, что у вас есть эти классы домена (вы пропустили класс D и отображения):

class A {
   String aName
   BigDecimal aXid
}

class B {
   A a
   BigDecimal bXid
   static mapping = {
      a column: 'A_XID'
   }
}

class C {
   D d
   B b
   static mapping = {
      b column: 'B_XID'
      d column: 'D_XID'
   }
}

class D {
   String someProperty
}
...