2016-02-11 7 views
0

У меня очень простой сервис, настроенный для создания записи в таблице Postgres, и я использую ее в Bootstrap.groovy для своего веб-приложения Grails 3.Grails 3 bootstrap - сервис не создает запись db

// CompanyService 
public Company createCompany(String name) { 
    Company company = new Company(name: name) 
    company.save() 
    return company 
} 

// BootStrap 
def init = { 
    companyService.createCompany('My Company') 
} 

Ну, при запуске я не могу видеть My Company запись, независимо от того, если услуга транзакционный или нет. Вместо этого, если используется одна и та же строка, например, в контроллере, она работает так, как ожидалось. Я что-то упустил?

+0

Что происходит, когда вы используете 'company.save (failOnError: true)'? Вы видите исключение? –

+0

Исключение или другой результат при использовании 'failOnError: true' или' flush: true', извините за то, что вы не указали это первым. – ilPittiz

+0

Я нашел проблему, вызвав новую компанию BootStrap (имя: «Моя компания»). save (failOnError: true) 'вместо' companyService': он был связан с ограничением класса домена, установленным для свойства 'name'. Но я действительно не могу сказать, почему исключение не печатается с использованием службы. – ilPittiz

ответ

0

Вы позвонили в службу поддержки bootstrap?

class BootStrap { 

    def companyService 

    def init = { servletContext -> 
     companyService.createCompany('My Company') 
    } 
} 
+0

Да, именно так выглядит мой BootStrap. Однако, я нашел, был мой вопрос, я добавил комментарий по моему вопросу выше. – ilPittiz