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,
- há um erro na primeira linha, pois faltou o comando select na instrução from Produto where proId = :id.
- a pesquisa resultará no valor null, pois o id 4521 não será passado como parâmetro à instrução HQL.
- o objeto que deve receber o retorno da consulta deve ser do tipo ArryList e não List como está na terceira linha.
- Produto se refere ao nome de uma classe e proId a um atributo dessa classe.
- 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