FC ConcursosFC Concursos

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 

  1. Query e createNamedQuery
  2. ResultSet e createQuery
  3. Result e executeQuery
  4. RecordSet e createQuery
  5. 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

Continue aprendendo