Pular para o conteúdo principal

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

ProgramaçãoFrameworks 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:
  1. ADefined, Instanced e Latent;
  2. BLazy, Eager e Restfull;
  3. COn, Loaded e Off;
  4. DOpen, Active e Closed;
  5. 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.

1Transient
Objeto recém-criado (new)
Não associado a sessão
Sem representação no banco
2Persistent
Associado a sessão ativa
Representação no banco
Sincronizado automaticamente
3Detached
Já foi persistente
Sessão fechada ou removido
Não gerenciado
Estados de entidade no Hibernate
LEVELsoulevel.com.br
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).

Gabarito: letra E

Link permanente: /questoes/fg065355