FC ConcursosFC Concursos

Questão FC373650

Considere o fragmento de código abaixo, retirado de uma aplicação Java EE que utiliza Hibernate Query Language (HQL). Query query = session.createQuery("from Produto where proId =

Frameworks para Desenvolvimento

FCC · 2019

Considere o fragmento de código abaixo, retirado de uma aplicação Java EE que utiliza Hibernate Query Language (HQL).


Query query = session.createQuery("from Produto where proId = :id");
query.setParameter("id", "4521");
List list = query.list();


Nesse fragmento de código,

  1. há um erro na primeira linha, pois faltou o comando select na instrução from Produto where proId = :id.
  2. a pesquisa resultará no valor null, pois o id 4521 não será passado como parâmetro à instrução HQL.
  3. o objeto que deve receber o retorno da consulta deve ser do tipo ArryList e não List como está na terceira linha.
  4. Produto se refere ao nome de uma classe e proId a um atributo dessa classe.
  5. há um erro na terceira linha, pois o retorno da consulta deve ser obtido pelo comando ResultSet result = query.result();
Mostrar resposta e comentário

Gabarito

D

Comentário do professor

No fragmento HQL "from Produto where proId = :id", Produto identifica a **classe de entidade** mapeada no Hibernate, não uma tabela SQL. HQL trabalha com objetos e suas propriedades.

A expressão proId refere‑se a um **atributo** (campo/propriedade) dessa classe. A cláusula WHERE filtra instâncias de Produto comparando o valor da propriedade proId ao parâmetro nomeado :id.

A chamada query.setParameter associa um valor ao parâmetro nomeado, e Query.list() retorna uma lista de objetos Produto correspondentes. Assim, a consulta opera sobre a modelagem orientada a objetos (classe e atributos), não sobre nomes de tabelas e colunas.

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

Continue aprendendo