我有一些grails域类,它们之间有关系,就像这样......
Domain A {
...
Domain B
}
Domain B {
...
Domain C
}
Domain C {
...
String name
String attr1
String attr2
}
如何使用withCriteria
对A执行热切提取,以便与B and C
相关的A
实例包含在我的结果中
像这样...
List<A> aList = [..., B: [..., C: [... name: 'name', attr1: 'attr1', attr2: 'attr2']]]
答案 0 :(得分:0)
您描述预期结果的方式很奇特,我无法确切地说出您想要的结果......
JSON
声明的var things = {
"First Item": {"name": "First Item", "url":"firstitem" },
"Second Item": {"name": "Second Item", "url":"seconditem" }
};
Object.keys(things).
filter(k => things[k].url === "firstitem").
map(k => things[k])
// [ { name: 'First Item', url: 'firstitem' } ]
类型建议您想要List<A> aList = [..., B: [..., C: [... name: 'name', attr1: 'attr1', attr2: 'attr2']]]
,但您显示的值看起来像aList
,其中包含一些嵌套的List<A>
。
如果你执行这样的查询......
Map
从中返回的内容为Map
def aList = A.withCriteria {
// your criteria goes here
}
,每个List
将引用A
,每个A
将引用B
}}
B
我希望有所帮助。
基于评论的编辑:
目前还不清楚您是否希望始终热切地提取它们,或者在表达查询时是否要表达它们。听起来好像你想在表达查询时表达它,这可以这样做......
C