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
- List<Acesso>
- Acesso
- Query<Acesso>
- TypedQuery<Acesso>
- 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