[bug] nova instancia de objeto nao cria id
30/05/2014 13:19
1
ola

Estou com um bug meio chato ate agora nao estava dando esse erro , mais hoje comecou a bugar quando crio um novo objeto ele nao gera id, alguem sabe corrigir esse erro?
Tags: [Duvidas]


0
William, nunca vi "não gerar um id" você poderia ser mais específico? qual a mensagem de erro? em qual situação ocorre?
30/05/2014 14:18


0
Estou fazendo o save do cadastro de produtos no meu sistema quando crio um novo objeto ex:
def Produto = new Produto(params) ele pega os parametros mais nao gera um id pro objeto alias ele ate gera so que nulo
30/05/2014 14:41


2
Olá, William.

Se bem entendi teu problema, o "id" só é preenchido ao invocar o "save()" no objeto.


0
William, é exatamente o que o Yoshiriro disse.

Para entender melhor, você deve compreender como funciona o ciclo de vida de uma entidade dentro do Grails.

Quando a instanciamos, como por exemplo: new Usuario(params), esta não é ainda gerenciada pelo GORM, que é o módulo de persistência do Grails.

Ela passa a ser gerenciada pelo GORM quando o método save é chamado (ou quando obtemos a entidade a partir de uma busca no banco de dados). Aí sim, o novo identificador será gerado e você poderá tirar proveito deste.

Um ponto importante deve ser levado em consideração: antes do método de persistência realmente ser executado, a entidade será validada. Se houver algum erro de validação, não será gerado um novo identificador para você.

Verificar isto é simples: basta checar se o valor de retorno do método save é diferente de null. Isto indica que foi salvo com sucesso.

Em seguida, caso haja problemas, da uma olhada nos métodos hasErrors da entidade, que irá retornar true caso algo esteja errado. Em seguida, dê também uma olhada no conteúdo do resultado da função errors, que irá listar tudo o que não passou pela validação, ok?


0
Bom mais o erro era exatamento no save eu colocava tipo produto.save(failOnError: true)
so que dava erro falando que a id era null , mais era por causa do belongsTo ai eu instanciei o objeto tipo Objeto objeto em vez de usar belongsTo dropei o banco e volto a funcionar
02/06/2014 16:52



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