为什么GORM为我的list属性返回一个嵌套数组?

时间:2014-11-24 21:42:08

标签: 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'
}

服务中的以下代码:

Bar bar1 = new Bar('bar1')
Bar bar2 = new Bar('bar2')
Bar bar3 = new Bar('bar3')
foo.addToBars(bar1)
foo.addToBars(bar2)
foo.addToBars(bar3)
foo.save

控制器中的以下代码:

def foo = Foo.findAll()
def bars = foo.bars

为什么条形是嵌套数组?

我得到类似的东西:[['bar1','bar2','bar3']] 我期待像['bar1','bar2','bar3']

这样的东西

更多信息:

  • Grails 2.4.3
  • mongodb 3.0.2
  • hibernate 3.6.10.17

1 个答案:

答案 0 :(得分:0)

问题是我在findAll返回的对象上做.bars。我将它改为findOne(),一切都按预期工作。

解决方案:

def foo = Foo.findOne() // was: def foo = Foo.findAll()
def bars = foo.bars