Grails可以创建简单的字符串/值映射属性部分"Maps of Objects", first paragraph。
我想知道,有没有办法稍后使用map属性作为查询的一部分来查询域类(使用Gorm动态查找器,标准或HQL)(即为键X添加条件以使值为Y )?
答案 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
答案 1 :(得分:1)
上面的表单使用交叉连接。要强制执行内部联接,请使用
join sc.pairKeyProperty pk1 on index(pk1) = 'someKey'
where 'someValue' in elements(pk1)