Questão nº 58

Questão de Desenvolvimento de Sistemas · FCC TRT24 2016 (nº 58)

FCC2016Técnico Judiciário - Área Apoio Especializado - Especialidade Tecnologia da InformaçãoDesenvolvimento de Sistemas
Gabarito: Bver comentário ↓

Considere o método a seguir, retirado de uma classe Java que utiliza JPA, implementada em condições ideais.

```java
public List consultar(String n) {
x = Persistence.createEntityManagerFactory("conectarPU");
y = x.createEntityManager();
z = y.getTransaction();
z.begin();
Query q = y.createQuery("SELECT f FROM Funcionario f WHERE f.nomefuncionario LIKE :nome");
q.setParameter("nome", "%" + n + "%");
List lista = q.getResultList();
x.close();
return lista;
}
```

As variáveis `x`, `y` e `z` são, respectivamente, dos tipos

Resposta comentada

Gabarito Alternativa B

No JPA (Java Persistence API), o EntityManagerFactory é o ponto de entrada para trabalhar com persistência, criando EntityManagers que gerenciam o ciclo de vida das entidades, e cada EntityManager pode obter uma EntityTransaction para controlar transações no banco de dados.

(A) Incorreta: `Connection` e `Statement` são classes do JDBC (`java.sql`), que é uma API de baixo nível para acesso a banco de dados, não diretamente as interfaces do JPA. O pacote `java.sql.jpa` não existe.
(B) Correta: `x` é um `EntityManagerFactory` (fábrica de `EntityManager`s), `y` é um `EntityManager` (gerenciador de entidades) e `z` é uma `EntityTransaction` (gerenciador de transações). Todas essas interfaces pertencem ao pacote `javax.persistence` (ou `jakarta.persistence` em versões mais novas do Java EE/Jakarta EE).
(C) Incorreta: `PersistenceUnit` é um conceito de configuração, não o tipo retornado por `createEntityManagerFactory`. O pacote `java.sql.jpa` não existe.
(D) Incorreta: Os nomes das interfaces estão incorretos (`ManagerFactory` em vez de `EntityManagerFactory`, `Manager` em vez de `EntityManager`). O pacote `javax.sql.persistence` também está incorreto, o correto é `javax.persistence`. Armadilha: Esta alternativa tenta confundir com nomes parecidos e um pacote que mistura `javax.sql` (JDBC) com `persistence`, mas o pacote correto para JPA é `javax.persistence`.
(E) Incorreta: Os nomes das interfaces estão incorretos (`Factory`, `Manager`). O pacote `java.persistence.jpa` não existe.

Fonte: FCC TRT24 2016 Técnico Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho