No que se refere a banco de dados relacional (SQL) e não rel...
Situação hipotética: Na utilização de JPA (Java Persistence API) para realizar o mapeamento objeto-relacional (ORM) em uma aplicação Java, surgiu a necessidade de criar uma propriedade idade não serializável em uma classe serializável. Assertiva: Uma maneira de informar que essa propriedade não deve ser persistida em banco de dados é utilizar a anotação @Transient em seu método getIdade().
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: C - certo
A questão aborda o conhecimento sobre a Java Persistence API (JPA), um framework que facilita o mapeamento objeto-relacional (ORM) em aplicações Java. Ao trabalhar com JPA, é importante entender como especificar o comportamento da persistência de atributos de uma entidade. Neste caso, estamos interessados em como informar ao JPA que uma determinada propriedade não deve ser persistida, ou seja, não deve ser salva no banco de dados.
Para resolver essa questão, é necessário entender o conceito e uso da anotação @Transient. Esta anotação é utilizada justamente para indicar que uma propriedade ou método não é persistente, ou seja, não deve ser considerada para mapeamento pela JPA. Ao marcar um método ou campo com @Transient, você informa ao provedor JPA para ignorar o atributo em questão durante as operações de persistência, como salvar e recuperar entidades do banco de dados.
No cenário apresentado, a propriedade idade precisa ser não serializável em uma classe que, como um todo, é serializável. Fazendo uso da anotação @Transient no método getIdade(), esta propriedade será excluída do processo de serialização e, consequentemente, não será armazenada na base de dados. Isso atende ao requisito mencionado e confirma a assertiva como correta.
Portanto, a utilização da anotação @Transient é a maneira correta de se informar ao JPA que uma propriedade não deve ser persistida, o que valida a alternativa C como correta.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
(FCC - 2012 - -PE - Programador de computador)
Em uma classe de entidade de uma aplicação que utiliza JPA, a anotação que define um atributo que não
será salvo no banco de dados é a:
a) @Optional.
b) @Transient.
c) @Stateless.
d) @Stateful.
e) @Local.
Resposta: letra b
Você pode usar @Transient direto na propriedade idade ou pode usar direto em seu método getIdade().
@Entity -Indica que uma classe È uma entidade que deve ser persistida como tabela.
@Table -Indica o nome de uma tabela para qual a entidade È mapeada.
@Column -Indica que um atributo de uma classe È uma coluna de uma tabela.
@Id -Indica que um atributo È a chave prim·ria de uma entidade.
@namedQuery -Define uma consulta.
@namedQueries- Define v·rias consultas.
@UniqueConstraint -Indica que uma propriedade n„o pode conter valores duplicados.
@Transient -Indica que uma propriedade n„o deve ser persistida no banco de dados.
@Inheritance- Define um relacionamento de heranÁa ‡ entidade.
@ManyToOne -Mapeamento muitos para um (N:1).
@OneToMany -Mapeamento um para muitos (1:N).
@OneToOne -Mapeamento um para um (1:1).
JPA ressurgindo das cinzas em concursos
A resposta esta CERTA
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo