Questão de Programação — Plataforma Java — FCC 2023
Programação›Plataforma 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
A@PersistenceContext
B@Injection
C@EJBInject
D@InjectTransaction
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.