Pular para o conteúdo principal

Questão de Programação — Frameworks Java — FGV 2023

ProgramaçãoFrameworks Java
Código
fg061577
Banca
FGV
Órgão
Câmara dos Deputados
Ano
2023
Nível
Superior
Cargo
Analista Legislativo - Informática Legislativa - Tarde
No âmbito da arquitetura do Hibernate, assinale o objeto que estabelece uma conexão física com um banco de dados e é projetado para ser instanciado a cada vez que seja necessária uma interação com o mesmo.
  1. ACriteria object.
  2. BQuery object.
  3. CSession object.
  4. DSessionFactory object.
  5. ETransaction object.
Revelar gabarito e comentário

GabaritoC — Session object.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Hibernate: objeto Session

Gabarito: letra C (Session object). No Hibernate, o objeto Session é responsável por estabelecer uma conexão física com o banco de dados e deve ser instanciado sempre que uma interação com o banco for necessária. Ele gerencia a unidade de trabalho (unit of work) e é leve, sendo criado e descartado por operação.

A banca testa a distinção entre Session e SessionFactory, que são frequentemente confundidas. Enquanto a Session é por interação, a SessionFactory é um objeto pesado, criado uma única vez por aplicação, que serve como fábrica de sessões.

Hibernate: conexão física
  • 1Session (leve, por interação)
    • Gerencia unidade de trabalho
    • Encapsula conexão JDBC
  • 2SessionFactory (pesada, única)
    • Fábrica de sessões
    • Imutável e thread-safe
  • 3Outros objetos (dependentes da Session)
    • Query (consulta HQL/SQL)
    • Criteria (consulta programática)
    • Transaction (controle transacional)
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Criteria object é utilizado para construir consultas tipadas de forma programática, mas não representa uma conexão física com o banco. Ele depende de uma Session para ser executado.

Alternativa B — ❌ Incorreta

Query object representa uma consulta (HQL ou SQL) e é obtido a partir de uma Session. Não gerencia a conexão física.

Alternativa C — ✅ Correta ⟵ GABARITO

Session object é a abstração que encapsula a conexão JDBC. Sua documentação oficial define: "The main runtime interface between a Java application and Hibernate. A Session is a lightweight, non-threadsafe object that represents a single unit-of-work with the database." Por ser leve, é projetado para ser instanciado a cada interação.

Alternativa D — ❌ Incorreta

SessionFactory object é um objeto imutável e thread-safe, construído a partir da configuração do Hibernate (uma vez por aplicação). Ele cria sessões, mas não mantém uma conexão física por interação. A pegadinha está em confundi-lo com Session.

Alternativa E — ❌ Incorreta

Transaction object gerencia a delimitação de transações (begin, commit, rollback), mas não estabelece a conexão física. Depende de uma Session ativa.

NÃO CAIA NESSA!

A banca explora a confusão entre SessionFactory (alternativa D) e Session (alternativa C). Lembre-se: SessionFactory é criada uma única vez e serve como fábrica de sessões; Session é leve e instanciada para cada interação com o banco.

Gabarito: letra C (Session object).

Link permanente: /questoes/fg061577