使用带有嵌入域的Grails fixture插件

时间:2013-09-04 15:53:29

标签: grails gorm grails-plugin fixtures grails-domain-class

给定域类:

class Person {
  String name
  Address address
  static embedded = ['address']
}

class Address {
  String addressLine1
  String addressLine2
  String city
  String state
  String postalCode
  String phone
}

建议使用嵌入式域时创建灯具的原因是什么?

我在夹具文件中尝试了什么:

address1(Address) {
    addressLine1 = '1444 Palm Ave'
    addressLine2 = 'suite 07'
    city = 'Kissiammee'
    state = 'FL'
    postalCode = '34741'
    phone = '615-555-1111'
}

person1(Person) {
    name = 'Fixture Person'
    address = ref('address1')
}

在这种情况下,person1会按预期在表中嵌入address1数据进入DB,但在地址表中也会添加一行。当我通过正在运行的应用程序中的personController创建一个人时,地址行不会被创建,并且我希望我的夹具的工作方式与可能的相似。

这是我试过的猜测。没工作......

person2(Person) {
    name = 'Test Person'
    address = [
        addressLine1 : '222 Boone Ave',
        city         : 'Boone',
        state        : 'IA',
        postalCode   : '50210',
        phone        : '515-555-1111',
    ]
}

我的控制器主要是脚手架,有一些小的调整来处理REST json。如果我通过

{
  "name":"Rest Fixture person",
  "address":{
    'addressLine1':'333 Boone Ave',
    'city':'Boone',
    ...
  }
} 

我按预期获得了嵌入在此人身上的地址,并且根据需要在地址表中没有任何行。所以只是想知道我是否可以使用fixture插件拉出相同的数据设置。

0 个答案:

没有答案