2014-01-22 64 views
1

我正在使用groovy-grails和angular JS創建一個簡單的web應用程序。我有4個域對象(開發人員,測試人員,程序員),都擴展Person。在我的bootstrap.groovy文件中,我創建了新的開發人員,測試人員和程序員,但是當我運行我的應用程序時,它並未使用Bootstrap.Groovy文件中的內容填充表格。每當我從類頭中取出(擴展Person)並添加字符串firstName時,它就會找到Developer,Tester和Programmer的名稱。我也嘗試擴展一個抽象的Person類(不是域對象),並且失敗了。見下圖:Angular JS和Grails REST服務

//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

嘗試刪除從您的域類的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