Pular para o conteúdo principal

Questão de Programação — Frameworks Java — CESPE / CEBRASPE 2025

ProgramaçãoFrameworks Java
Código
ce203947
Banca
CESPE / CEBRASPE
Órgão
FUB
Ano
2025
Nível
Médio
Cargo
Técnico de Tecnologia da Informação
Julgue o próximo item, relativo ao framework Hibernate.O método persist() do EntityManager é utilizado para inserir uma nova entidade no banco de dados, sendo lançada uma exceção caso a entidade já esteja associada ao contexto de persistência e com o mesmo identificador.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

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 – Comportamento do método persist()

Gabarito: ❌ ERRADO. O método persist() do EntityManager não lança exceção quando a entidade já está associada ao contexto de persistência (gerenciada) com o mesmo identificador. Segundo a especificação JPA, se a entidade já é gerenciada, a operação persist() é ignorada, sem lançamento de exceção. A exceção ocorre, por exemplo, ao tentar persistir uma entidade detached (desanexada) que já possui um identificador, ou ao violar restrições de unicidade no banco de dados.

A afirmação do enunciado confunde dois cenários: entidade gerenciada (managed) e entidade detached (desanexada). Para entidades gerenciadas, persist() é uma operação segura e não lança exceção. Para entidades detached, o método merge() é o mais apropriado.

persist() (EntityManager)
  • 1Entidade gerenciada (managed)
    • Operação ignorada (segura)
    • Não lança exceção
  • 2Entidade desanexada (detached)
    • Lança exceção (identificador existente)
    • Alternativa: merge()
LEVEL · soulevel.com.br
NÃO CAIA NESSA!

A banca troca o comportamento esperado: persist() lança exceção para entidades detached com identificador existente, não para entidades gerenciadas. Memorize: se a entidade já está no contexto de persistência, persist() é inócuo.

ERRADO

Link permanente: /questoes/ce203947