我有一个带有一堆属性的GORM对象
MyGormObject {
String prop1;
String prop2;
String prop3;
...
}
我有一个地图列表 - 每个地图都有一个prop1和prop2的特定值。 我想找到所有具有prop1和prop2匹配prop1,prop2映射对的MyGormObjects。
如果它只是一对,我试图匹配我可以做的:
static MyGormObject get(String prop1, long prop2) {
find 'from MyGormObject where prop1=:prop1 and prop2=:prop2',
[prop1: prop1, prop2: prop2]
}
我是否可以匹配一对配对列表?
由于
答案 0 :(得分:0)
我在想你应该建立一个动态标准。像这样:
def m =[
[key1: 'value1a', key2: 'value2a'],
[key1: 'value1b', key2: 'value2b']
]
def results = MyDomain.withCriteria { m ->
or {
m.each { v ->
and {
eq('key1', v.key1)
eq('key2', v.key2)
} // match the pair of values
}
} // match any of the pairs
}
以上内容将匹配任何域类与列表中的任何一对。为了匹配列表中的任何对,它必须是或者,并且属性也必须包含在和{}中,因此它们被匹配为一对而不是彼此独立。
答案 1 :(得分:0)
你在找这样的东西吗?...
def listOfMaps = ...
def results = MyDomain.withCriteria {
or {
listOfMaps.each { map ->
// if you need to impose a check here
// to make sure the keys exist, do that.
// this code assumes they exist...
def key1 = map.key1
def key2 = map.key2
and {
eq 'key1', key1
eq 'key2', key2
}
}
}
}