Questão de Programação — Frameworks Java — FGV 2023
Programação›Frameworks Java
Código
fg065355
Banca
FGV
Órgão
PGM - Niterói
Ano
2023
Nível
Superior
Cargo
Analista de Tecnologia da Informação
No contexto do Hibernate, considere a declaração a seguir.Estudante estudante= new Estudante();É correto afirmar que o objeto estudante, ao longo da sua existência/utilização, pode estar em algum dos estados:
ADefined, Instanced e Latent;
BLazy, Eager e Restfull;
COn, Loaded e Off;
DOpen, Active e Closed;
ETransient, Persistent e Detached.
Revelar gabarito e comentário▾
GabaritoE — Transient, Persistent e Detached.
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”.
Estados de objetos no Hibernate
Gabarito: letra E. Os três estados possíveis para uma entidade gerenciada pelo Hibernate são Transient, Persistent e Detached. A declaração Estudante estudante = new Estudante(); cria um objeto no estado Transient; ao associá-lo a uma sessão, torna-se Persistent; e, após o fechamento da sessão, passa a Detached.
A banca cobra o conhecimento básico do ciclo de vida das entidades no Hibernate. As demais alternativas misturam conceitos de outras áreas ou inventam nomes que não correspondem aos estados reais.
Estados de entidade no Hibernate: Transient (Objeto recém-criado (new), Não associado a sessão, Sem representação no banco); Persistent (Associado a sessão ativa, Representação no banco, Sincronizado automaticamente); Detached (Já foi persistente, Sessão fechada ou removido, Não gerenciado)
Alternativa A — ❌ Incorreta
“Defined, Instanced e Latent” não são estados reconhecidos pelo Hibernate. Esses termos não fazem parte da documentação da ferramenta.
Alternativa B — ❌ Incorreta
“Lazy” e “Eager” são estratégias de carregamento (fetch types) de associações, não estados de entidade. “Restfull” não é um termo do Hibernate.
Alternativa C — ❌ Incorreta
“On, Loaded e Off” não correspondem a estados oficiais do Hibernate. “Loaded” poderia remeter a um objeto carregado, mas a nomenclatura correta é Persistent.
Alternativa D — ❌ Incorreta
“Open, Active e Closed” são estados de uma sessão (Session) do Hibernate, não de uma entidade. Uma entidade não tem esses estados.
Alternativa E — ✅ Correta ⟵ GABARITO
Transient: objeto recém-criado, ainda não associado a uma sessão. Persistent: objeto associado a uma sessão ativa, com representação no banco. Detached: objeto que já foi persistente, mas cuja sessão foi fechada ou o objeto foi removido do contexto de persistência.
NÃO CAIA NESSA!
Esta é uma questão de memorização pura. Grave os três estados: Transient, Persistent e Detached. Em provas, a banca costuma trocar por nomes de estratégias de carregamento (Lazy/Eager) ou estados da sessão (Open/Closed).