Questão de Programação — Frameworks Java — FGV 2023
Programação›Frameworks 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.
ACriteria object.
BQuery object.
CSession object.
DSessionFactory object.
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.