[英]How do I perform Deep query in Grails using createCriteria
我有一些grails域类,它们之间有这样的关系...
Domain A {
...
Domain B
}
Domain B {
...
Domain C
}
Domain C {
...
String name
String attr1
String attr2
}
我如何使用withCriteria
对A执行热切取回,以便与A
相关的B and C
实例包含在我的结果中,如下所示...
List<A> aList = [..., B: [..., C: [... name: 'name', attr1: 'attr1', attr2: 'attr2']]]
您描述预期结果的方式很特殊,我无法确切地说出您想要的结果...
List<A> aList = [..., B: [..., C: [... name: 'name', attr1: 'attr1', attr2: 'attr2']]]
声明的类型aList
建议你想有一个List<A>
但是值告诉你看起来像Map
与一些嵌套的Map
秒。
如果执行这样的查询...
def aList = A.withCriteria {
// your criteria goes here
}
从中返回的将是A
的List
,每个A
将引用一个B
,每个B
将引用一个C
def aList = A.withCriteria {
// your criteria goes here
}
for(A obj : aList) {
B b = obj.b
C c = b.c
// ...
}
希望对您有所帮助。
根据评论进行编辑:
目前尚不清楚您是否希望始终获取它们,或者是否要在表达查询时表达它们。 听起来好像您想在表达查询时就表达它,可以这样完成...
import import org.hibernate.FetchMode
// ...
A.withCriteria {
// criteria goes here
fetchMode "b", FetchMode.JOIN
fetchMode "b.c", FetchMode.JOIN
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.