Questão nº 30
Questão de Tecnologia da Informação · FCC TRT14 2022 (nº 30)
Considere o método abaixo, presente em uma aplicação que utiliza Hibernate 4.3 original, executado em condições ideais.
```java
private void createAndStoreEvent(Processo p) {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
I;
session.getTransaction().commit();
}
```
Para salvar o objeto p na tabela do banco de dados utiliza-se, na lacuna I, a instrução
- A`session.save(p)` (alternativa correta)
- B`session.deploy(p)`
- C`session.add(p)`
- D`session.persite(p)`
- E`session.send(p)`
Resposta comentada
Gabarito Alternativa A
No Hibernate, para guardar um objeto Java (como um `Processo`) no banco de dados, precisamos usar a sessão (Session) para gerenciar essa operação, transformando o objeto em um registro na tabela correspondente.
(A) Correta: O método `session.save(p)` é a forma padrão e mais comum no Hibernate para persistir um novo objeto (`p`) no banco de dados, atribuindo-lhe um identificador e tornando-o gerenciado pela sessão.
(B) Incorreta: O método `session.deploy(p)` não existe na API do Hibernate para persistência de entidades; "deploy" remete a implantação de software.
(C) Incorreta: Armadilha da banca! Embora `add()` seja um método comum para adicionar elementos a coleções em Java, o objeto `Session` do Hibernate não utiliza `add()` para persistir entidades. É um distrator para quem confunde a API de persistência com APIs de coleções.
(D) Incorreta: A alternativa `session.persite(p)` contém um erro de digitação. O método correto seria `session.persist(p)`, que também é usado para persistir objetos, mas a grafia apresentada está incorreta.
(E) Incorreta: O método `session.send(p)` não existe na API do Hibernate para persistência de entidades; "send" sugere envio de dados ou mensagens, não armazenamento em banco de dados.
Fonte: FCC TRT14 2022 Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 001). Reproduzida para fins de estudo.