我有以下域名结构: -
class A{
B b
C c
String email
}
class B{}
class C {
D d
}
class D{}
以下是我需要转换为Grails Criteria Query的SQL查询。
select * from A aa
inner join C ca on ca.c_id = aa.id and aa.email = 'source'
inner join D da on da.id = ca.d_id
inner join B ba on aa.b_id = ba.id
inner join A aa1 on b.id = aa1.b_id and aa1.email = 'response'
答案 0 :(得分:0)
为了使用hibernate / GORM实现您想要的查询,您必须稍微扩展您的域类:
class A{
B b
C c
String email
A a // self-ref
}
然后您的查询应如下所示:
A.withCriteria{
eq 'email', 'source'
a{
eq 'email', 'response'
}
}
答案 1 :(得分:0)
我已将表重命名为有意义的内容,如:
class Apple{
Ball ball
Cat cat
String email
}
class Ball{}
class Cat {
Dog dog
}
class Dog{}
创建标准是:
return Apple.createCriteria.list() {
and {
and {
eq("email", "source")
cat
}
and {
cat {
dog
}
}
and {
eq("email", "response")
ball
}
}
}
如果您有真实数据,请告诉我您是否需要任何帮助。
您还可以查看this example。