Pular para o conteúdo principal

Questão de Programação — Plataforma Java — FCC 2023

ProgramaçãoPlataforma Java
Código
fc069833
Banca
FCC
Órgão
TRT - 15ª Região (SP)
Ano
2023
Nível
Médio
Cargo
Técnico Judiciário - Área de Apoio Especializado - Especialidade Tecnologia da Informação
Em uma aplicação Jakarta EE, criada e configurada em condições ideais, uma Técnica deseja injetar um EntityManager, que é uma parte essencial da API JPA, em uma classe Enterprise JavaBean (EJB), imediatamente antes da instrução private EntityManager entityManager;. Para isso, ela terá que utilizar a anotação
  1. A@PersistenceContext
  2. B@Injection
  3. C@EJBInject
  4. D@InjectTransaction
  5. E@entityInject
Revelar gabarito e comentário

GabaritoA — @PersistenceContext

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”.

Injeção de EntityManager em EJB (Jakarta EE)

Gabarito: letra A. Para injetar um EntityManager em um Enterprise JavaBean (EJB), a anotação correta é @PersistenceContext. Essa anotação faz parte da especificação JPA (Jakarta Persistence) e é a forma padrão de obter um EntityManager gerenciado pelo contêiner, com suporte a transações e contexto de persistência.

A questão testa o conhecimento sobre as anotações específicas do Jakarta EE para injeção de recursos de persistência. Enquanto @Inject (CDI) serve para injeção genérica de beans, o EntityManager requer a anotação @PersistenceContext para ser corretamente associado ao contexto de persistência da unidade.

Alternativa A — ✅ Correta ⟵ GABARITO

@PersistenceContext é a anotação definida pela JPA (Jakarta Persistence) para injetar um EntityManager gerenciado pelo contêiner. Ela pode ser usada em EJBs e outros componentes gerenciados (como Servlets e CDI beans, desde que em ambiente Jakarta EE). Sintaxe: @PersistenceContext private EntityManager entityManager;.

Alternativa B — ❌ Incorreta

@Injection não é uma anotação padrão do Jakarta EE. A anotação genérica para injeção de dependência é @Inject (do CDI), mas ela não é específica para EntityManager. A injeção de EntityManager exige o contexto de persistência, que só @PersistenceContext provê.

Alternativa C — ❌ Incorreta

@EJBInject não existe na especificação Jakarta EE. A injeção de EJBs é feita com @EJB, e a injeção de EntityManager com @PersistenceContext.

Alternativa D — ❌ Incorreta

@InjectTransaction também não é uma anotação padrão. Embora o EntityManager esteja associado a transações, a anotação para injetá-lo é @PersistenceContext, não uma anotação de transação.

Alternativa E — ❌ Incorreta

@entityInject não existe; a nomenclatura não segue as convenções Java (anotações começam com maiúscula e não usam entity). A anotação correta é @PersistenceContext.

NÃO CAIA NESSA!

A banca insere anotações que lembram @Inject (CDI) ou palavras relacionadas a transação/persistência para confundir. Lembre-se: para EntityManager em ambiente Jakarta EE, a anotação é sempre @PersistenceContext.

Gabarito: letra A.

Link permanente: /questoes/fc069833