Angular JS和Grails REST服务

时间:2014-01-22 13:16:19

标签: grails inheritance gorm

我正在使用groovy-grails和angular JS创建一个简单的Web应用程序。我有4个域对象(Developer,Tester,Programmer),它们都扩展了Person。在我的bootstrap.groovy文件中,我创建了新的开发人员,测试人员和程序员,但是当我运行我的应用程序时,它没有在Bootstrap.Groovy文件中填充表格。每当我从类头中取出(extends Person)并添加String firstName,它就会找到Developer,Tester和Programmer的名称。我也试过扩展一个抽象的Person类(不是域对象),但也失败了。见下文:

//domain object
class Person{
     int id;
     String firstName;
     String lastName;
}

//domain object, non working copy
class Developer extends Person{
}

//domain object, working copy
class Developer{
     int id;
     String firstName;
     String lastName;
}

//Boostrap.groovy
new Developer(id: 2, firstName: 'Foo', lastName: 'Ninja');

谢谢, Butler_Alfred

1 个答案:

答案 0 :(得分:1)

尝试从您的域类中删除id。 Grails隐式地为你添加了这个字段。

此外,当您在Developer中创建新的Bootstrap.groovy实例时,请不要传入您自己的ID。当持久化开发人员实例时,将自动设置一个。

Developer developer = new Developer(firstName: 'Foo', lastName: 'Ninja')
assert developer.id == null    // id is null before save
developer.save()
assert developer.id != null    // id is assigned after save