Atualizar campo pelo hibernate que a trigger modificou

3 respostas
leandrogmuller

Ola pessoal.

Preciso atualizar um campo cuja trigger modificou antes da inserção no banco.
Exemplo:
Hibernate insere dados tabela consulta(id, nome, calculo)
campo calculo sera preenchido pela trigger com determinada formula la do banco.

agora o objeto consulta.getCalculo() do hibernate precisa me dar o valor do calculo do banco, sem que eu precise novamente chamar uma consulta no banco.

Há como fazer isso no hibernate?
Não confundam isso com o @Id @GeneratedValue do hiberante, cujo já funciona certinho.

Abs turma.

3 Respostas

Lavieri

se for possivel, se solte + do banco, não deixe a trigger no seu Banco de Dados, ponha ela no seu modelo, assim vc tem um pode maior sobre ela

public class Hipotetica {
   private Integer id;
   private String nome;
   private Double calculo;

   //todas aquelas anotações e métodos legais


   @PrePersist
   @PreUpdate
   private void calculate() {
      //aqui vc poem su logica do calculo, em vez de colocar no trigger, e calcula o valor para o campo calculo
      calculate = //super conta muito dificil
   }
}

desta forma vc tem uma trigger, que roda Antes de inserir, e antes de atualizar ... e ela roda no teu dominio, e não no banco, assim vc não precisa por regras de dominio la no banco de dados

leandrogmuller

É complexo, pois essas rotinas são executadas pelo banco mesmo, cujo outros sistemas também utilizam.
Para que a regra de negocio não precisasse ser refeita nos 4 sistemas que acessam, foi elaborada no banco pelo DBA.

leandrogmuller

Problema resolvido com refresh

Hutil.getSessao().refresh(sessao.getDaoConsulta());
Criado 28 de abril de 2009
Ultima resposta 29 de mai. de 2009
Respostas 3
Participantes 2