Em um sistema corporativo desenvolvido em Java, a equipe pr...

Próximas questões
Com base no mesmo assunto
Ano: 2026 Banca: FGV Órgão: TJ-SC Prova: FGV - 2026 - TJ-SC - Analista de Sistemas |
Q4150976 Programação
Em um sistema corporativo desenvolvido em Java, a equipe precisa persistir entidades de domínio em um banco de dados relacional, utilizar uma implementação concreta para o Mapeamento Objeto-Relacional, manter histórico das alterações realizadas em determinadas entidades e controlar a evolução do esquema do banco de dados entre os ambientes de desenvolvimento, homologação e produção.

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
Alternativas

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.

Tema central: JPA e Hibernate
Análise das alternativas
A
Errada
Incorreta porque limita a correção à assertiva I e desconsidera a II, que também está correta. Hibernate pode atuar como implementação da JPA.
B
Errada
Incorreta porque reconhece apenas a II e elimina a I, que está correta. JPA define a especificação de persistência objeto-relacional em Java.
C
Certa
A alternativa C está correta porque reúne exatamente as assertivas compatíveis com a função técnica de cada ferramenta. A I está certa ao tratar a JPA como especificação de persistência objeto-relacional em Java, voltada ao mapeamento entre classes/relacionamentos e estruturas de banco relacional. A II também está certa porque o Hibernate pode atuar como implementação da JPA, oferecendo os mecanismos concretos de ORM para persistência, consultas e sincronização entre objetos Java e tabelas. A III impede qualquer alternativa que a inclua, porque inverte os papéis de Envers e Flyway.
D
Errada
Incorreta por dois motivos: inclui a III, que está errada, e exclui a I, que está correta. Envers não controla migração de esquema e Flyway não registra histórico de alterações de entidades no nível ORM.
E
Errada
Incorreta porque inclui a III. O erro específico da III é a inversão de finalidades: Hibernate Envers é para auditoria/histórico de alterações em entidades, enquanto Flyway é para migrações versionadas do esquema do banco.
Pegadinha da questão
A confusão explorada foi tratar JPA como implementação concreta e, principalmente, trocar auditoria de entidades por versionamento de esquema, aceitando a III só porque os nomes Envers e Flyway são conhecidos no ecossistema Java.
Dica para questões semelhantes
  • 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