【问题标题】:Angular JS and Grails REST ServiceAngular JS 和 Grails REST 服务
【发布时间】:2014-01-22 13:16:18
【问题描述】:

我正在使用 groovy-grails 和 Angular JS 创建一个简单的 Web 应用程序。我有 4 个域对象(开发人员、测试人员、程序员)都扩展了 Person。在我的 bootstrap.groovy 文件中,我创建了新的开发人员、测试人员和程序员,但是当我运行我的应用程序时,它不会使用 Bootstrap.Groovy 文件中的内容填充表。每当我从类头中取出(扩展 Person)并添加 String firstName 时,它​​就会找到开发人员、测试人员和程序员的名称。我还尝试扩展一个抽象的 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');

谢谢, 巴特勒_阿尔弗雷德

【问题讨论】:

    标签: grails inheritance grails-orm


    【解决方案1】:

    尝试从您的域类中删除 id。 Grails 会为您隐式添加此字段。

    另外,当你在Bootstrap.groovy 中创建一个新的Developer 实例时,不要传入你自己的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
    

    【讨论】:

      猜你喜欢
      • 2016-04-29
      • 1970-01-01
      • 1970-01-01
      • 2014-10-17
      • 1970-01-01
      • 2014-06-12
      • 1970-01-01
      • 1970-01-01
      • 2016-10-11
      相关资源
      最近更新 更多