Pular para o conteúdo principal

Questão de Programação — Frameworks Java — VUNESP 2024

ProgramaçãoFrameworks Java
Código
vu085027
Banca
VUNESP
Órgão
Prefeitura de Santo André - SP
Ano
2024
Nível
Superior
Cargo
Analista de Tecnologia da Informação - Redes e Data Center
O seguinte método Java pertence a uma aplicação de folha de pagamento e utiliza o framework Hibernate para persistir objetos em um banco de dados relacional.Imagem associada para resolução da questãoO propósito desse método é
  1. Aler uma lista de nomes de um arquivo texto e, para cada nome, criar uma instância da classe Employee e salvá-la no banco de dados.
  2. Bler uma lista de nomes de um arquivo texto e, para cada nome, localizar uma instância da classe Employee previamente armazenada no banco de dados.
  3. Cexibir o nome de todas as instâncias persistentes da classe Employee, previamente armazenadas, e, em seguida, excluir essas instâncias do banco de dados.
  4. Dexibir o nome de todas as instâncias persistentes da classe Employee, previamente armazenadas, e, em, seguida, atualizar essas instâncias no banco de dados.
  5. Eexibir o nome de todas as instâncias persistentes da classe Employee, previamente armazenadas, sem realizar operações de atualização ou exclusão.
Revelar gabarito e comentário

GabaritoE — exibir o nome de todas as instâncias persistentes da classe Employee, previamente armazenadas, sem realizar operações de atualização ou exclusão.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Hibernate: consulta e exibição de dados persistentes

Gabarito: letra E. O método descrito utiliza o Hibernate para consultar e exibir o nome de todas as instâncias persistentes da classe Employee, sem realizar operações de atualização ou exclusão — exatamente o que a alternativa E afirma. A questão testa o entendimento do propósito do código, que é apenas de leitura (consulta), não de escrita ou modificação no banco de dados.

O Hibernate é um framework de mapeamento objeto-relacional (ORM) para Java, que facilita a persistência de objetos em bancos de dados relacionais. Ele transforma classes Java em tabelas e permite operações de CRUD (Create, Read, Update, Delete) de forma transparente, gerando as consultas SQL necessárias. No contexto da questão, o método provavelmente utiliza uma consulta HQL (Hibernate Query Language) ou Criteria para recuperar todos os registros da entidade Employee e, em seguida, itera sobre eles para exibir os nomes.

A pegadinha central está em distinguir operações de leitura (consulta) de operações de escrita (inserção, atualização, exclusão). O código descrito não contém chamadas a métodos como save(), update() ou delete() — ele apenas busca e exibe dados. Portanto, as alternativas que mencionam criar, localizar, excluir ou atualizar instâncias estão incorretas, pois descrevem ações que não são realizadas pelo método.

Para entender melhor, considere um exemplo: suponha que a classe Employee tenha atributos como id e name. O método poderia usar uma consulta HQL como from Employee para obter uma lista de todos os funcionários e, em seguida, um loop for para imprimir employee.getName(). Isso é uma operação de leitura pura, sem efeitos colaterais no banco de dados.

A distinção entre leitura e escrita é fundamental em aplicações de persistência. Operações de leitura (SELECT) não alteram o estado do banco, enquanto operações de escrita (INSERT, UPDATE, DELETE) modificam os dados. O Hibernate oferece métodos específicos para cada operação: save() para inserir, update() para atualizar, delete() para excluir, e consultas para ler. A banca explora exatamente essa confusão, apresentando alternativas que misturam ações de escrita com a leitura.

Guarde o critério decisivo: o método apenas exibe dados, sem atualizar ou excluir — é essa a fronteira que separa a alternativa correta das demais.

Alternativa A — ❌ Incorreta

Afirma que o método lê uma lista de nomes de um arquivo texto e cria instâncias de Employee para salvá-las no banco. Isso descreve uma operação de inserção (CREATE), mas o método não lê de arquivo nem chama save(). O código trabalha com dados já persistentes, não com entrada de arquivo.

Alternativa B — ❌ Incorreta

Diz que o método lê nomes de um arquivo e localiza instâncias previamente armazenadas. Embora mencione localizar (leitura), a origem dos dados é um arquivo texto, o que não condiz com o código, que opera sobre o banco de dados diretamente. Não há leitura de arquivo no método.

Alternativa C — ❌ Incorreta

Afirma que o método exibe os nomes e exclui as instâncias. A exclusão seria uma operação de escrita (DELETE), que não está presente no código. O método apenas exibe, sem chamar delete().

Alternativa D — ❌ Incorreta

Diz que o método exibe os nomes e atualiza as instâncias. A atualização seria uma operação de escrita (UPDATE), que não ocorre. O código não chama update() nem modifica os objetos.

Alternativa E — ✅ Correta ⟵ GABARITO

Descreve corretamente o propósito: exibir o nome de todas as instâncias persistentes de Employee, sem realizar operações de atualização ou exclusão. Isso corresponde a uma consulta de leitura, que é exatamente o que o método faz.

Gabarito: letra E

Link permanente: /questoes/vu085027