Como persistir campos embedded?
02/06/2015 17:03
0
Prezados amigos,

Não consigo fazer a persistência dos campos embedded do meu domínio.

Utilizando um exemplo bem simplificado como o abaixo, ao executar o procedimento carregar da classe, os campos identificacao_cpf, etc. ficam todos null. O que deve ser feito para persistir estes campos?

class PessoaFisica {
  
        String nome

        PFIdentidade  identificacao

        static embedded = ['identificacao']


        static constraints = {

? ?nome (blank:false)
         }



 String toString () {
"${nome}"
        }?

def static PessoaFisica getPessoaFisica (String argCpf) {

    def c = PessoaFisica.createCriteria()

def pf = c.get {
eq("cpf", argCpf)
}

         println ("Pessoa: "+pf?.nomeCompleto.toString())
return pf
}

def static carregar () {

         def pf01 = new PessoaFisica(nome:"Paulo de Tarso",  sexo:"Masculino",  identificacao_identidade:"307.528", identificacao_orgaoidentificacao:"MMAR", identificacao_cpf:"85662470842")
         pf01.save(flush: true)

         println('pf01 salvo:' + pf01.identificacao.cpf.toString())

}


class PFIdentidade {
String  identidade
String  orgaoIdentificacao
String  cpf

static constraints = {
 cpf  nullable: true
 identidade blank:false
 orgaoIdentificacao blank:false
}

static mapping = {
 cpf column: 'identificacao_cpf', sqltype:char, length: 11
 orgaoIdentificacao column: 'identificacao_orgaoIdentificacao', sqltype:char, length: 20
 identidade column: 'identificacao_identidade', sqltype:char, length: 59
}

}
Tags: embedded;domain;save;composition


1
Olá Pedro,
  Provavelmente não está salvando por que o objeto "pf01" deve estar com algum erro, para confirmar isso vc pode usar um "pf01.validate()" e em seguida mandar imprimir os errors "pf01.errors", um "failOnError: true" dentro do "save()" também deve ajudar a descobrir o que ocorre.
O atributo sexto, identificacao_identidade, identificacao_orgaoidentificacao e identificacao_cpf não existem na domain PessoaFisica.
Já ouviu falar de Services? é uma maneira interessante de criar estes métodos que estão sendo adicionados às domains de modo que possam ser usados em diversas partes do sistema: http://grails.github.io/grails-doc/2.4.4/ref/Services/Usage.html
03/06/2015 10:00


0
Obrigado Dyego!

Vou verificar...
03/06/2015 17:24



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