Boas colegas, eu estou para desenvolver um sistema web na qual precisarei de criar triggers para certas acções. Sempre aprende a criar triggers a partir do SGBD usando o Mysql, porém a uns tempos ouvi com um professor na aula que já não se criam triggers a partir do SGBD mas sim a partir da própria aplicação. Visto que estou a estudar desenvolvimento de aplicações usando spring mvc, spring data etc que através do jpa permite-me mapear os atributos da classe em colunas da base de dados etc, será que poderei criar as triggers a partir da apropria aplicação. Como poderei o fazer? Exige um conhecimento solido de jpa? Na minha opinião parece mais simples criar com a própria base dados mas seria interessante criar com a aplicação, no meu ver seria muito bom logo que a aplicação rodasse cria-se já a base de dados com as suas triggers. Qual é a vossa opinião? Não sou muito experiente…
Nunca ouvi falar disso. Se realmente ocorre, qual o papel do DBA nessa questão? Nenhum?
Será que não é necessário esclarecer essa questão com o professor?
Eu concordo.
O JPA possui callbacks que poussem uma funcionalidade “semelhante” as triggers.
Vc define eventos que poderão ocorrer antes ou depois de persistir, remover e etc.
Porém essas regras ficarão somente na aplicação, se vc fizer um insert/update/delete puro no banco obviamente que não passarão por elas.
vc pode ver um exemplo em https://www.baeldung.com/database-auditing-jpa
Mas melhor perguntar ao professor o que ele quis em “fazer na aplicação”…
Profissionalmente vai usar trigger direto no banco. Jpa pra isso fica limitado na aplicação como já explicaram. Em grandes empresas existem centenas de sistemas, entao tem que garantir no banco. Se é questão acadêmica faz o que pedirem.