Questão FC373653
Considere o fragmento de código abaixo de uma classe de acesso a dados que utiliza JPA, onde em é um objeto do tipo EntityManager gerado em uma conexão com um banco de dados aberto
Frameworks para Desenvolvimento
FCC · 2018
Considere o fragmento de código abaixo de uma classe de acesso a dados que utiliza JPA, onde em é um objeto do tipo EntityManager gerado em uma conexão com um banco de dados aberto e em condições ideais.
I x = em. II ("SELECT a.nome, a.sobrenome FROM Acusado a WHERE a.id = :id");
x.setParameter("id", 1);
Object[] acusado = (Object[]) x.getSingleResult();
Para que esse fragmento realize uma consulta na tabela chamada Acusado, procurando pelo id de número 1, as lacunas I e II devem ser preenchidas, correta e respectivamente, com
- Query e createNamedQuery
- ResultSet e createQuery
- Result e executeQuery
- RecordSet e createQuery
- Query e createNativeQuery
Mostrar resposta e comentário
Gabarito
Errado
Comentário do professor
Query é a interface retornada por chamadas do EntityManager para executar uma consulta; ela representa uma consulta não tipada que aceita parâmetros e fornece métodos como setParameter e getSingleResult.
createNativeQuery instrui o EntityManager a executar uma consulta SQL nativa diretamente no banco (em vez de uma consulta em linguagem de persistência). Por isso é possível usar o nome da tabela e das colunas exatamente como estão no banco.
Como a consulta seleciona duas colunas, o resultado de getSingleResult será um único registro representado como Object[], exigindo o cast mostrado. O uso de setParameter("id", 1) faz o binding do parâmetro nomeado ':id' antes da execução.
Conteúdo do catálogo FC Concursos · Atualizado em