Considere o método a seguir, retirado de uma classe Java que...

Próximas questões
Com base no mesmo assunto
Q839327 Programação

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


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.set Parameter("nome", "%" + n + "%");

List lista = q.getResultList();

x.close();

return lista;

}


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

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: Alternativa B

Vamos entender por que a alternativa B é a correta. A questão aborda o uso do JPA (Java Persistence API), que é uma especificação do Java EE (agora Jakarta EE) para a persistência de dados em aplicações Java. Ela permite mapear objetos Java a tabelas de um banco de dados relacional de forma a gerenciar as entidades persistidas durante o ciclo de vida da aplicação.

Na implementação do método apresentado, temos as seguintes ações sendo realizadas:

  1. Criação de uma EntityManagerFactory, que é responsável por criar instâncias de EntityManager.
  2. Criação de um EntityManager, que gerencia as operações de persistência sobre as entidades.
  3. Início de uma transação, utilizando um objeto que representa a EntityTransaction.

As variáveis x, y e z são representantes das classes ou interfaces mencionadas acima, respectivamente:

  • x: EntityManagerFactory
  • y: EntityManager
  • z: EntityTransaction

Estas são todas interfaces definidas no pacote javax.persistence, que é o pacote base da JPA. Elas são utilizadas para gerenciar a persistência e a transação de dados nas aplicações Java.

Nas outras alternativas, as terminologias usadas estão incorretas ou não correspondem aos componentes do JPA:

  • A alternativa A menciona interfaces do pacote java.sql.jpa, que na verdade não existe. Além disso, Connection e Statement são classes relacionadas a JDBC, não JPA.
  • A alternativa C introduz o termo PersistenceUnit, que é um conceito do JPA, mas não é uma interface, e também menciona o pacote inexistente java.sql.jpa.
  • A alternativa D menciona nomes genéricos e incorretos de interfaces e um pacote javax.sql.persistence, que também não existe.
  • A alternativa E menciona termos genéricos sem especificar as interfaces corretas e faz referência a um pacote java.persistence.jpa, que não é válido.

Portanto, a alternativa B é a única que identifica corretamente as interfaces usadas para a persistência de dados com JPA e o pacote ao qual pertencem.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo