Insert em mais de uma tabela, qual lugar seria o ideal
24/09/2009 00:00
0
Olá galera, minha duvida é a seguinte, tenho um controller de Pessoa, essa pessoa pode ser uma pessoa fisica ou pessoa juridica, e eu tenho três domain nesse caso, Pessoa, PessoaFisica, PessoaJuridica.

Aonde seria o certo de fazer o insert nas tabelas, por exemplo vou inserir uma PessoaFisica, terias que fazer o insert em Pessoa também, esse insert eu faria num Controller, Service, ou no Domain mesmo, no caso no domain de PessoaFisica??
Tags: Grails


0
dsnogueira,

Recentemente passei por uma situação semelhante a sua, sugiro q o insert seja feito no controller de sua classe relacionado a seu caso de uso. Por exemplo, seu caso de uso diz q deve cadastrar um aluno, porem na implementação vc tem q cadastrar aluno, pessoafisica e pessoa, logo a implementação ficaria no save do Alunocontroller.
No seu caso sugiro q fique em PessoaFisicaController e PessoaJuridicaController, ficaria mais o menos assim:


def save =
{
PessoaFisica.withTransaction
{status ->
def pessoaFisicaInstance = new PessoaFisica(params)
pessoaFisicaInstance.pessoa = new Pessoa()
pessoaFisicaInstance.pessoa.nome = params.nome
def cpf = new DocumentoPessoa()
cpf.numero = params.cpf
cpf.pessoa = pessoaFisicaInstance.pessoa //passa pessoa para cpf
cpf.tipoDocumentoPessoa = TipoDocumentoPessoa.get(62) //pega p tipo cpf
def rg = new DocumentoPessoa()
rg.numero = params.rg
rg.pessoa = pessoaFisicaInstance.pessoa //passa pessoa para cpf
rg.tipoDocumentoPessoa = TipoDocumentoPessoa.get(63) //pega p tipo cpf
pessoaFisicaInstance.pessoa.addToDocumentos(rg)
pessoaFisicaInstance.pessoa.addToDocumentos(cpf)
pessoaFisicaInstance.pessoa.save()
if (!pessoaFisicaInstance.hasErrors() && pessoaFisicaInstance.save(flush:true))
{
flash.message = "Operação realizada com sucesso!"
redirect(action:show,id:pessoaFisicaInstance.id)
}
}
}


Abraços
24/09/2009 00:00


0
ronny, valeu pela dica...

obrigado
25/09/2009 00:00



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto