FC ConcursosFC Concursos

Questão FC373617

Em uma aplicação Java que utiliza JPA, em condições ideais, considere manager um objeto válido criado por meio da instrução abaixo. EntityManager manager = Persistence.createEntity

Plataforma Java EE

FCC · 2023

Em uma aplicação Java que utiliza JPA, em condições ideais, considere manager um objeto válido criado por meio da instrução abaixo.

 

EntityManager manager =

Persistence.createEntityManagerFactory("trtPU").createEntityManager();

 

A instrução manager.createNamedQuery("Acesso.findByUserSenha", Acesso.class); irá retornar um objeto do tipo

  1. List<Acesso>
  2. Acesso
  3. Query<Acesso>
  4. TypedQuery<Acesso>
  5. ArrayList<Acesso>
Mostrar resposta e comentário

Gabarito

D

Comentário do professor

TypedQuery<Acesso> é o tipo retornado porque a chamada EntityManager.createNamedQuery recebe também a classe de resultado (Acesso.class), indicando ao JPA o tipo concreto esperado.

A assinatura genérica relevante é <T> TypedQuery<T> createNamedQuery(String name, Class<T> resultClass), ou seja, quando se passa a Class<T> o método devolve uma TypedQuery parametrizada.

Vantagens: proporciona verificação de tipo em tempo de compilação, elimina casts manuais e faz com que métodos como getResultList() retornem diretamente List<Acesso>, tornando o código mais seguro e legível.

Exemplo de uso: TypedQuery<Acesso> q = manager.createNamedQuery("Acesso.findByUserSenha", Acesso.class); List<Acesso> lista = q.getResultList();

Em resumo, sempre que se conhece previamente o tipo de retorno, usar TypedQuery é a prática recomendada.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo