Questão nº 29
Questão de Tecnologia da Informação · FCC TRT5 2022 (nº 29)
Considere o bloco de código abaixo, parte de uma classe contida em uma aplicação que utiliza JPA 2.0 com unidade de persistência chamada SistemaPU.
private EntityManagerFactory conn;
private EntityManager manager;
public void conectar() {
conn = Persistence.createEntityManagerFactory("SistemaPU");
manager = conn.createEntityManager();
}
public Login verificarLogin(String email) {
conectar();
Login dados = I (Login.class, email);
desconectar();
return dados;
}
public void desconectar() {
manager.close();
conn.close();
}
Considerando que a conexão com o banco de dados ocorre com sucesso e que os recursos necessários estão disponíveis e em condições ideais, para que seja realizada a busca na tabela do banco de dados a lacuna I deve ser corretamente preenchida por
- Aconn.find
- Bmanager.find (alternativa correta)
- Cconn.executeQuery
- Dmanager.query
- Emanager.search
Resposta comentada
Gabarito Alternativa B
No JPA, o EntityManager é como o "gerente" que lida diretamente com as operações no banco de dados, como salvar, buscar e atualizar objetos (entidades), enquanto o EntityManagerFactory é a "fábrica" que cria esses gerentes.
(A) Incorreta: O `EntityManagerFactory` (`conn`) é responsável por criar `EntityManager`s e não possui métodos para operações diretas de busca de entidades como `find`.
(B) Correta: O método `find()` é uma operação fundamental do EntityManager (`manager`) no JPA, utilizada para buscar uma entidade pelo seu identificador primário (chave primária).
(C) Incorreta: `executeQuery` não é um método padrão do JPA para buscar entidades, e o `EntityManagerFactory` (`conn`) não executa consultas diretamente.
(D) Incorreta: Embora o `EntityManager` (`manager`) seja usado para consultas, o método `query` (ou `createQuery`) é usado para criar e executar consultas JPQL ou Criteria API, não para buscar uma entidade diretamente por sua chave primária como o `find`. Esta é uma armadilha comum, pois `manager` faz consultas, mas não com um método `query` simples para este propósito específico.
(E) Incorreta: `search` não é um método padrão do JPA para realizar buscas de entidades.
Fonte: FCC TRT5 2022 Técnico Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 001). Reproduzida para fins de estudo.