Questão nº 72
Questão de Informática · FGV TJTO 2022 (nº 72)
A técnica em informática Ana está implementando o módulo de persistência da aplicação TJTOApp utilizando o JPA (Java Persistence API).
Observe abaixo o trecho principal da classe Departamento de TJTOApp:
```
@Entity
@Table(name="DEPART")
public class Departamento {
@Id
@Column(name="ID_DEPART")
private Integer id;
@Column(name="NM_DEPART")
private String nome;
private Integer qtdPessoas;
}
```
Ana precisa que a propriedade qtdPessoas da classe Departamento seja calculada pela aplicação e não seja persistida na tabela DEPART.
Para especificar que a propriedade qtdPessoas seja ignorada pelo mecanismo de persistência JPA, Ana deve adicionar à qtdPessoas a anotação do JPA:
- A`@GeneratedValue`;
- B`@Transient`; (alternativa correta)
- C`@Temporal`;
- D`@Enumerated`;
- E`@Column(nullable = true)`.
Resposta comentada
Gabarito Alternativa B
O JPA (Java Persistence API) mapeia objetos Java para tabelas de banco de dados, e a anotação @Transient é usada para indicar que um campo de um objeto não deve ser persistido no banco de dados.
- (A) Incorreta: A anotação
@GeneratedValueé utilizada para especificar a estratégia de geração de valores para chaves primárias (IDs), como auto-incremento, e não para ignorar campos. - (B) Correta: A anotação
@Transienté a forma padrão no JPA para indicar que uma propriedade de uma entidade não deve ser persistida no banco de dados, ou seja, ela será ignorada pelo mecanismo de persistência. - (C) Incorreta: A anotação
@Temporalé usada para especificar o tipo de mapeamento para campos de data e hora (java.util.Dateoujava.util.Calendar), indicando se deve ser armazenado como data, hora ou timestamp. - (D) Incorreta: A anotação
@Enumeratedé utilizada para mapear tipos enumerados (enums) para colunas de banco de dados, seja como string ou como valor ordinal. - (E) Incorreta: A anotação
@Column(nullable = true)é usada para configurar propriedades de uma coluna no banco de dados, como o nome, se pode ser nula, etc. No entanto, ela persiste o campo;nullable = trueapenas significa que a coluna pode aceitar valores nulos, não que o campo será ignorado. A armadilha aqui é que, embora trate de uma propriedade da coluna, ela não impede a persistência, que é o objetivo da questão.
Fonte: FGV TJTO 2022 Técnico Judiciário - Informática (Caderno Tipo 1). Reproduzida para fins de estudo.