[AJUDEM] - Ordem de execução de operações UPDATE e INSERT

Pessoal,

Tenho a seguinte situação:

1º) Abro transação
2º) Faço um update numa tabela “A”
3º) Faço outras operações de update em outras tabelas
4º) Faço um insert na mesma tabela “A” do primeiro update
5º) Faço um Session.flush()
6º) Faço um commit no final para finalizar a transação.

Quando eu analiso o log da minha aplicação, percebo que o INSERT foi executado antes do UPDATE, mas como a minha tabela “A” tem uma trigger(before insert), preciso que o UPDATE seja obrigatoriamente executado antes do INSERT.

Com ou sem o Session.flush() no final, antes do commit tenho o mesmo resultado de não usar o Session.flush().

Tentei usar a minha trigger com before e depois com after insert e também deu na mesma.

Tentei também usar o Session.flush() logo após o update, funcionou mas li em alguns foruns que isso não é recomendado pois pode afetar o desempenho da aplicação.

Como faço para que o UPDATE seja executado antes do INSERT, na ordem que o meu método foi implementado.

Obs.:
Porque o Hibernate prioriza o INSERT, mesmo que o UPDATE venha antes do INSERT no meu código?

E o Session.flush(), qual o real papel desse comando? Hoje eu uso o flsuh somente no final da minha transação antes de fazer o transaction.commit(), é o correto?

Att.

Qual a versão do hibernate você está utilizando? Me lembro que passei por problemas semelhantes e apenas atualizei para outra versão e resolveu o problema…

se eu n me engano, existe uma propriedade chamanda hibernate.order_updates, então sete ela para true!!!

Diga o resultado depois!

Estou usando o hibernate 2, amanhã testarei no serviço e coloco o resultado.

Valew…

[quote=johnnylcon]Estou usando o hibernate 2, amanhã testarei no serviço e coloco o resultado.

Valew…[/quote]

Ah! versão 2 é rox hem… já tem a 4RC1. mas utiliza a 3.6 que vai dar certo, creio eu.