Mongodb 为什么GORM为我的列表属性返回嵌套数组?
我有以下域对象:Mongodb 为什么GORM为我的列表属性返回嵌套数组?,mongodb,grails,gorm,Mongodb,Grails,Gorm,我有以下域对象: class Foo { List<Bar> bars static hasMany = [bars: Bars] static mapWith = 'mongo' } class Bar { Foo foo static belongsTo = [foo: Foo] static mapWith = 'mongo' } 以及控制器中的以下代码: def foo = Foo.findAll() def bars = foo.bars 为什么条形图
class Foo {
List<Bar> bars
static hasMany = [bars: Bars]
static mapWith = 'mongo'
}
class Bar {
Foo foo
static belongsTo = [foo: Foo]
static mapWith = 'mongo'
}
以及控制器中的以下代码:
def foo = Foo.findAll()
def bars = foo.bars
为什么条形图是嵌套数组
我得到了类似:['bar1','bar2','bar3']
我期待类似于['bar1'、'bar2'、'bar3'的东西]
更多信息:
Grails 2.4.3
mongodb 3.0.2
冬眠3.6.10.17
问题是我正在处理findAll返回的对象上的.bar。我把它改成findOne,一切都按预期进行 解决方案:
def foo = Foo.findOne() // was: def foo = Foo.findAll()
def bars = foo.bars
另外,当我调试和检查对象“foo”时,它在“bar”属性中有正确的东西,也就是说,它有一个带有bar对象的简单数组,但是当我执行foo.bar时,会发生一些真正的f-up,它在另一个数组中返回该数组。我看不到任何证据表明任何数组都涉及到任何地方。您是使用单词数组作为列表的同义词,还是在某处确实看到了数组?区别是相关的。@JeffScottBrown没有同义词,当我在调试时检查“bars”时,我看到数组的那一刻,它包含和数组中的1项,第一项是实际的bars数组,这是否回答了您的问题?顺便说一下,谢谢!它确实回答了我的问题。我不知道数组可能来自哪里,除非这是mongo的东西。我本以为会有实现java.util.List的东西。对不起,我帮不了你。如果你认为有漏洞,提交一份JIRA,我们会看一看。我只是重新阅读了原始帖子。你说的几乎是不可能的。您确定bars属性引用的是数组而不是ArrayList或其他类型的列表吗?数组是一种根本不同的类型,没有意义,这就是我之前要求澄清的原因。
def foo = Foo.findOne() // was: def foo = Foo.findAll()
def bars = foo.bars