2014-01-22 1 views
1

Я создаю простое веб-приложение с использованием groovy-grails и углового JS. У меня есть 4 объекта домена (Developer, Tester, Programmer), которые расширяют Person. В моем файле bootstrap.groovy я создал новых разработчиков, тестеров и программистов, но когда я запускаю свое приложение, он не заполняет таблицу с помощью файла Bootstrap.Groovy. Всякий раз, когда я беру (расширяет Person) из заголовка класса и добавляю String firstName, он находит имя разработчика, тестера и программиста. Я также попытался расширить абстрактный класс Person (а не объект домена), и это тоже не удалось. Смотрите ниже:Угловой JS и Grails REST Service

//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 добавляет это поле для вас неявно.

Также, когда вы создаете новый экземпляр Developer в Bootstrap.groovy, не передавайте свой собственный идентификатор. Один будет автоматически установлен, когда экземпляр разработчика будет сохранен.

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