Grails:针对字符串/值对映射属性的查询或条件

时间:2014-04-16 14:14:19

标签: grails

Grails可以创建简单的字符串/值映射属性部分"Maps of Objects", first paragraph

我想知道,有没有办法稍后使用map属性作为查询的一部分来查询域类(使用Gorm动态查找器,标准或HQL)(即为键X添加条件以使值为Y )?

2 个答案:

答案 0 :(得分:2)

在玩了一下并且几乎放弃之后,我发现地图语法(令人惊讶地)在HQL中工作。假设班级如下:

class SomeClass {
   Map pairKeyProperty
}

您可以构建如下所示的查询:

select * from SomeClass sc where sc.pairKeyProperty['someKey'] = 'someValue' and sc.pairKeyProperty['someOtherKey'] = 'someOtherValue'

非常整洁!我仍然更喜欢使用标准,因为它们更清晰,但它们似乎不支持相同的语法(或者我无法找到它)。

我在GitHub中创建了一个示例应用程序: https://github.com/deigote/grails-simple-map-of-string-value-pairs

可以在以下位置访问: http://grails-map-of-string-pairs.herokuapp.com/

答案 1 :(得分:1)

上面的表单使用交叉连接。要强制执行内部联接,请使用

join sc.pairKeyProperty pk1 on index(pk1) = 'someKey'
where 'someValue' in elements(pk1)