0

如何轻松处理 GORM 中的嵌套属性?

如果我有一个包含嵌套属性的属性图:

def mymap = [
   id : '1',
   name : 'first name',
   subs : [[
      subid : 1,
      name : 'first sub name'
   ],[
      subid : 2,
      name : 'second sub name'
   ]]
]

我有以下域对象:

class Node {
  int id
  String name
  static hasMany = [subs:Sub]
}
class Sub {
  int id
  String name
}

如果我用地图创建一个新节点

new Node(myMap).save()

它抱怨诸如>>无法将类型'java.util.ArrayList'的属性值转换为属性'subs'所需的类型'java.util.Set'

当我尝试更新时也是如此

node.properties = myMap
node.save()

有没有办法我可以自动执行此操作但必须手动遍历它?

4

2 回答 2

1

您的地图内容看起来或多或少像一些 JSON。

我的第一次尝试(如果开箱即用失败)是尝试使用 JSON 转换器,如果仍然失败,我可能会将我的 JSON 编组器挂接到 Node 类型。

于 2013-05-07T22:14:55.680 回答
0
def mymap = [
   id : '1',
   name : 'first name',
   subs : [[
      subid : 1,
      name : 'first sub name'
   ],[
      subid : 2,
      name : 'second sub name'
   ]] as Set
]
于 2013-05-07T13:01:42.467 回答