Em um sistema corporativo desenvolvido em Java, a equipe pr...
Com base nesse cenário, analise as seguintes afirmativas:
I. A Java Persistent API (JPA) define uma especificação para persistência objeto-relacional em aplicações Java, permitindo o mapeamento de classes e relacionamentos para estruturas de bancos relacionais.
II. O Hibernate pode atuar como implementação da JPA, fornecendo mecanismos concretos de ORM para persistência, consultas e sincronização entre objetos Java e tabelas relacionais.
III. O Hibernate Envers é utilizado para controlar migrações versionadas do esquema do banco de dados, enquanto o Flyway registra o histórico das alterações realizadas nas entidades persistentes.
Está correto o que se afirma em
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: C
Fundamento decisivo: O decisivo era reconhecer a função de cada tecnologia citada no enunciado: JPA é a especificação de persistência ORM em Java, Hibernate pode implementá-la, Hibernate Envers é para auditoria/histórico de entidades e Flyway é para migrações versionadas do esquema. Essa correspondência valida I e II e invalida III, que inverte Envers e Flyway.
- Separe sempre especificação de implementação: JPA define o padrão; Hibernate pode implementá-lo.
- Ao ver ferramentas de persistência, identifique a finalidade operacional exata de cada uma antes de validar a assertiva.
- Não trate histórico e versionamento como equivalentes sem verificar o objeto do controle: entidades persistidas ou esquema do banco.
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
Vamos analisar cada afirmativa.
✅ Correta.
A Jakarta Persistence (antiga JPA) é uma especificação, não uma implementação. Ela define:
- anotações (, , , etc.);
- gerenciamento de entidades;
- mapeamento objeto-relacional (ORM);
- linguagem JPQL.
Ela permite mapear objetos Java para tabelas de bancos relacionais.
✅ Correta.
O Hibernate ORM é uma das implementações mais conhecidas da JPA.
Ele oferece:
- persistência de entidades;
- gerenciamento de sessões;
- cache;
- JPQL/HQL;
- sincronização entre objetos e banco de dados.
Está totalmente correta.
❌ Incorreta.
A afirmativa inverteu as funções das ferramentas.
O Hibernate Envers registra o histórico (auditoria) das entidades.
Exemplo:
Se o cliente mudar de endereço três vezes, o Envers mantém todas as versões da entidade.
➡️ Auditoria de dados.
O Flyway controla a evolução do esquema do banco de dados por meio de scripts versionados.
Exemplo:
➡️ Migração/versionamento do banco.
- I – Correta
- II – Correta
- III – Incorreta
Resposta: Apenas I e II estão corretas.
A alternativa correta é a C (I e II, apenas).
Abaixo está a análise detalhada de cada afirmativa:
- Afirmativa I (Correta): A Java Persistence API (JPA) fornece uma maneira de mapear objetos Java para tabelas de bancos de dados relacionais. Ela é descrita como uma especificação que abstrai a complexidade das camadas de acesso a dados, permitindo gerenciar dados relacionais por meio de uma abordagem baseada em repositórios.
- Afirmativa II (Correta): O Hibernate é uma implementação concreta incluída no ecossistema de persistência do Spring (especificamente no spring-boot-starter-data-jpa). Ele fornece os mecanismos de ORM para gerar o SQL apropriado e sincronizar os objetos Java com as tabelas do banco de dados.
- Afirmativa III (Incorreta): Esta afirmativa inverte as funções das ferramentas mencionadas de acordo com as definições das fontes. O Flyway é descrito especificamente como uma ferramenta de migração de banco de dados utilizada para gerenciar e versionar as mudanças no esquema do banco de dados por meio de scripts SQL. O erro na descrição do Flyway (que na afirmativa é atribuído ao registro de histórico de entidades, e não ao esquema) torna a sentença falsa. O Hibernate Envers é, na verdade, a ferramenta voltada para auditoria (histórico de alterações nas entidades), enquanto o Flyway foca na evolução do esquema.
Portanto, apenas as afirmativas I e II estão corretas
O gabarito foi alterado de C para B. A afirmativa I foi invalidada por um detalhe no nome. Persistent em vez de Persistence.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo