O analista João deve utilizar o Hibernate Envers para imple...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: E
Fundamento decisivo: O ponto decisivo é que o requisito pede registrar o nome do usuário como dado adicional da revisão no Envers, e não como atributo da entidade Projeto ou por mecanismo genérico de auditoria.
- Se o requisito envolve informação adicional sobre a revisão, trate isso como metadado da revisão, não como atributo de negócio da entidade auditada.
- No Envers, para gravar dados extras da revisão, procure entidade de revisão customizada com RevisionListener.
- Quando a alternativa citar mecanismo genérico do Hibernate, compare com o ponto de extensão específico do Envers antes de aceitar.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
A resposta correta é a letra E.
João deve configurar um Revision Listener no Envers para capturar o evento de alteração e preencher um campo personalizado na entidade de revisão com o nome do usuário logado. Esta é a abordagem documentada e recomendada pela documentação oficial do Hibernate Envers para adicionar metadados personalizados às revisões, como informações de usuário ou endereço IP.
️ Por que as outras alternativas estão incorretas?
Alternativa A (Customized Revision Metadata): Embora o conceito de "metadados de revisão personalizados" esteja correto, ele não é implementado através de uma funcionalidade específica com esse nome. A implementação desse conceito é feita, na prática, exatamente através da criação de uma RevisionEntity e um RevisionListener .
Alternativa B (Filtro de auditoria): O Envers não possui um conceito nativo de "filtro de auditoria" para essa finalidade. A interceptação correta e a mais simples é feita através do RevisionListener.
Alternativa C (Anotação customizada herdada de AuditOverride): A anotação @AuditOverride é usada para sobrescrever configurações de auditoria em componentes embutidos (como @Embeddable), e não para adicionar metadados de revisão como o nome do usuário .
Alternativa D (Interceptor do Hibernate): Esta é uma solução de mais baixo nível e mais genérica. Embora funcione, ela não é específica do Envers e exigiria que João implementasse manualmente a lógica para associar o nome do usuário ao número da revisão correta. O RevisionListener é a ferramenta certa para o trabalho, pois opera dentro do ciclo de vida de criação de revisões do Envers.
Fonte: DeepSeek
O Revision Listener no Hibernate Envers permite interceptar a criação de novas revisões e adicionar metadados personalizados (como o ID do usuário, endereço IP ou detalhes da operação) à tabela de auditoria. Para utilizá-lo, você deve implementar a interface RevisionListener, passando a classe customizada para a anotação
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo