Boa tarde, este é meu primeiro post aqui no GUJ!
Tenho uma dúvida:
Há como utilizar before/after insert, update e delete igual faz com trigger em postgres e firebird, para pegar os valores anteriores e atuais?
Obrigado,
Bruno Faria
Boa tarde, este é meu primeiro post aqui no GUJ!
Tenho uma dúvida:
Há como utilizar before/after insert, update e delete igual faz com trigger em postgres e firebird, para pegar os valores anteriores e atuais?
Obrigado,
Bruno Faria
Tem sim cara. Você irá criar na sua classe de domínio os métodos a serem chamados no before, after, etc. Você irá anotar estes métodos com:
@PostPersist, @PrePersist e etc.. É só procurar a anotação que você quer. Vai ficar assim:
@PostPersist
public void depoisSalvar() {
// Faz o que você quer
}
apenas acrescentando… além dos já citados, tem tb as anotações,
@PostUpdate, @PreUpdate
@PostRemove, @PreRemove
@PostLoad
o método com a notação não precisa ser public, pode ser private, protected, ou default a visibilidade… o método não deve ter parametros… e o método deve estar na classe Entidade, q vc ker q tome a ação…
Existe como criar uma classe Externa, para fazer auditoria, antes e apos estas operações… pra fazer isso… tem uma anotação (não lembro bem) acredito que é @EntityListerners(ClasseQueVaiAdutar.class)
essa anotção (@EntityLis…) é uma anotação de classe, então deve vim junto das anotações de @Entity e @Table, antes do escopo da classe
na classe “ClasseQueVaiAdutar” os métodos são um pouco difernetes… eles devem ter parametro, e no parametro vc vai receber a entidade que irá criar a trigger, portanto se tiver adutiando uma entidade Produto, o parametro deve receber um Produto, ou um SuperTipo de produto…
abraços
Valeu pessoal, era isso mesmo que procurava!
Moderador, pode marcar como resolvido.