Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Triggers com Hibernate

Boa noite, eu tenho umas triggers que usava num sistema antigo meu em PHP, e como estou apredendo JavaWeb, vale a pena usar essas triggers ainda?

São em PostgreSQL.

A dúvida mesmo era se deixa algumas responsabilidade no banco ou hibernate faz isso também.

5 respostas

Oi Yuri, isso daí da uma discussão grande :P. Em geral as aplicação tem deixado de lado o uso de triggers principalmente por conta da clareza do sistema. Imagina, você insere algo do banco e de repente tem outro registro inserido em outra tabela.

Para não nos deixar órfãos, o Hibernate trouxe isso também. Você pode anotar métodos com @PrePersist, @PreUpdate etc. Dessa forma, você consegue executar códigos associados aos eventos do hibernate :).

É possível fazer essas anotações para que se altera em outra tabelas?

Por exemplo:

Tenho uma tabela hospedagem e quarto, quando fizer a hospedagem ela vai tá aberta e fiz um campo no quarto situação do quarto, com a trigger eu fazia hospedagem caso acontece alguma inserção ou atualização ele verificava o que foi mudado e alterava a situação do quarto.

Oi Yuri, a partir da JPA 2.1 você pode receber o EntityManager injetado em objetos de classes que são EntityListeners(http://www.thoughts-on-java.org/jpa-21-overview/). E aí sim você poderia mexer em outros objetos e tal..

Só toma cuidado para não ficar com um código complicado de manter, ficando parecido com uma trigger mesmo.

Estou tentando migrar mesmo projeto que eu tenho em PHP para JavaWeb, entendi, se ficar complicado, tentar optar pela trigger só não sei se o hibernate consegue conversa direito com ele, porque a mesma trigger que eu tinha ele fazia a mesma coisa porém ele pegar o ID do quarto aleatório. :/

solução!

Em vez de deixa a responsabilidade no banco deixei pelo java.