我为以下查询中指定的每个表都有域对象。我在创建表示以下SQL查询的withCriteria闭包时遇到了问题。有什么想法吗? 谢谢! 史蒂夫
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
}
答案 0 :(得分:1)
我不确定如何使用条件查询来执行此操作,但在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
}