我目前正在尝试使用GORM MongoDB插件为grails保留以下类:
class Result {
String url
def Result(){
}
static constraints = {
}
static mapWith="mongo"
static mapping = {
collection "results"
database "crawl"
}
}
我正在运行以保持此类的代码如下:
class ResultIntegrationTests {
@Before
void setUp() {
}
@After
void tearDown() {
}
@Test
void testSomething() {
Result r = new Result();
r.setUrl("http://heise.de")
r.getMetaClass().setProperty("title", "This is how it ends!")
println(r.getTitle())
r.save(flush:true)
}
}
这是MongoDB中的结果:
{ "_id" : NumberLong(1), "url" : "http://heise.de", "version" : 0 }#
现在,使用MongoDB正确保留了url,但是映射器看不到动态属性 - 尽管println(r.getTitle())工作正常。
我是groovy的新手所以我认为有更多经验的人可以帮我解决这个问题。有没有办法让这个动态添加的属性对映射工具可见?如果是,我该怎么做?
非常感谢任何建议......
答案 0 :(得分:2)
不是将随机属性添加到metaClass并希望Grails将扫描metaClass以查找随机属性然后保留它们,为什么不将Map添加到您的域类(或新的Key / Value域类)哪个结果可以hasMany
),因此您可以根据需要为其添加随机额外属性。
答案 1 :(得分:1)