Hibernate Flush automático
29/10/2012 17:06
0
Pessoal,

possuo uma aplicação que ao inserir um objeto, o método beforeInsert() definido no dóminio, invoca serviços que executam as regras de negócio da aplicação alterando outros objetos, porém ao executarem tais regras os mesmos não são persistidos no Banco de Dados necessitando de um FLUSH para isso.

O problema se agrava ainda mais porque nos 'Services' não permitem a execução de métodos save(flush: true) das instancias de outros dominios alterados pelas regras de negócio.

Gostaria de saber como fazer para resolver este problema de persistência, alguma dica?
Tags: hibernate, flush, persistência


0
Opa... cara, isso pode ser por causa da seção criada pelo gorm. Respondi uma dúvida semelhante em outro post. Não testei, mas acredito que o problema seja esse.
Digamos que você queira salvar o objeto Pessoa:

Pessoa.withTransaction{
//aplica regras de negócio e salva seu objeto...
}


ou, caso isso não dê certo tente assim:

Pessoa.withNewSession{
//aplica regras de negócio e salva seu objeto...
}



[]'s
01/11/2012 12:41


0
Luciano,

usando o withNewSession em Dominio funciona para serviços uma vez que estes utilizam transações e mesmo assim não fazem o flush automatico. Sempre tenho que dar flush:true para persistir no Banco de Dados as alterações.

mas valeu pela dica.
05/11/2012 11:13



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