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

Dei*_*ote 6 grails

Grails可以创建简单的字符串/值映射属性部分"对象映射",第一段.

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

Dei*_*ote 2

在尝试了一下并几乎放弃之后,我发现映射语法(令人惊讶地)可以在 HQL 中工作。假设该类如下所示:

class SomeClass {
   Map pairKeyProperty
}
Run Code Online (Sandbox Code Playgroud)

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

select * from SomeClass sc where sc.pairKeyProperty['someKey'] = 'someValue' and sc.pairKeyProperty['someOtherKey'] = 'someOtherValue'
Run Code Online (Sandbox Code Playgroud)

很简约!我仍然更喜欢使用标准,因为它们编写起来更清晰,但它们似乎不支持相同的语法(或者我找不到它)。

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

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