Questão de Programação — JEE (Java Enterprise Edition) — FGV 2026
- Código
- gp003698
- Banca
- FGV
- Órgão
- TJ-SC
- Ano
- 2026
- Cargo
- Analista de Sistemas
- AI, apenas.
- BII, apenas.
- CI e II, apenas.
- DII e III, apenas.
- EI, II e III.
GabaritoC — I e II, apenas.
Gabarito: letra C. Estão corretas as afirmativas I e II: a JPA é a especificação Java para persistência objeto-relacional, e o Hibernate é uma implementação concreta dessa especificação. A afirmativa III está incorreta porque inverte as funções: o Hibernate Envers é que registra o histórico de alterações (auditoria), enquanto o Flyway é a ferramenta de controle de migrações versionadas do esquema do banco.
O cenário da questão descreve três necessidades típicas de um sistema corporativo Java: persistir entidades em banco relacional, usar uma implementação concreta de ORM e controlar tanto o histórico de alterações quanto a evolução do esquema. Para entender a resposta, é preciso separar três conceitos que costumam se misturar: a especificação (o que define o padrão), a implementação (quem executa o padrão) e as ferramentas auxiliares (quem resolve problemas específicos ao redor da persistência).
A JPA (Java Persistence API) é uma especificação — um conjunto de interfaces, anotações e regras — que padroniza o mapeamento objeto-relacional em Java. Ela define como classes Java (entidades) e seus relacionamentos são mapeados para tabelas de um banco relacional, além de estabelecer uma linguagem de consulta própria (JPQL) e o conceito de EntityManager para gerenciar o ciclo de vida das entidades. Por ser uma especificação, a JPA não funciona sozinha: ela precisa de uma implementação concreta que execute o que foi definido.
O Hibernate é exatamente essa implementação. Ele é um framework ORM que implementa a especificação JPA, fornecendo os mecanismos concretos de persistência, consulta e sincronização entre objetos Java e tabelas relacionais. Quando um desenvolvedor usa EntityManager ou anotações como @Entity e @Table, é o Hibernate (ou outra implementação, como EclipseLink) que traduz essas instruções em SQL e gerencia o estado das entidades no banco.
Agora, as ferramentas auxiliares: o Hibernate Envers é um módulo do Hibernate voltado para auditoria — ele mantém um histórico das alterações realizadas nas entidades persistentes, registrando versões anteriores dos dados. Já o Flyway é uma ferramenta de migração de banco de dados — ela controla a evolução do esquema (criação e alteração de tabelas, por exemplo) por meio de scripts versionados, garantindo que os ambientes de desenvolvimento, homologação e produção fiquem sincronizados. A afirmativa III troca exatamente essas duas funções.
A banca inverte as responsabilidades do Hibernate Envers e do Flyway. O candidato que sabe que ambos existem, mas não distingue suas funções, marca a alternativa E. Lembre-se: Envers = auditoria (histórico de alterações); Flyway = migração (evolução do esquema). Essa inversão é o coração da questão.
Ferramenta/Especificação | Papel | Função principal |
|---|---|---|
JPA | Especificação | Padroniza o mapeamento objeto-relacional (ORM) em Java |
Hibernate | Implementação da JPA | Fornece mecanismos concretos de persistência, consulta e sincronização |
Hibernate Envers | Módulo auxiliar | Auditoria: mantém histórico de alterações nas entidades |
Flyway | Ferramenta auxiliar | Migração: controla a evolução versionada do esquema do banco |
A afirmativa descreve corretamente a JPA como uma especificação para persistência objeto-relacional, permitindo o mapeamento de classes e relacionamentos para estruturas de bancos relacionais. É exatamente o papel da JPA dentro da plataforma Java: padronizar o acesso a banco de dados por meio do mapeamento Objeto/Relacional.
O Hibernate atua como implementação da JPA, fornecendo mecanismos concretos de ORM para persistência, consultas e sincronização entre objetos Java e tabelas relacionais. Essa é a função central do Hibernate: ser a implementação que dá vida à especificação JPA.
A afirmativa inverte as funções. O Hibernate Envers é o módulo responsável por manter o histórico das alterações realizadas nas entidades persistentes (auditoria), enquanto o Flyway é a ferramenta que controla migrações versionadas do esquema do banco de dados. A troca de papéis torna a afirmativa falsa.
Conclusão: corretos apenas os itens I e II → letra C.
Gabarito: letra C
Link permanente: /questoes/gp003698