O trecho de código abaixo, em Java Persistence API (JPA) ver...

Próximas questões
Com base no mesmo assunto
Q2171700 Programação
O trecho de código abaixo, em Java Persistence API (JPA) versão 2.2, apresenta a declaração de uma chave primária composta de uma entidade de um banco de dados.
@__________ public class PessoaId implements Serializable {          String nome;          String sobrenome; } @__________ public class Pessoa {      @__________ PessoaId id;      String endereco; } 
Assinale a alternativa que preenche, correta e respectivamente, as lacunas do trecho de código acima.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a A - Embeddable – Entity – EmbeddedId. Agora, vamos entender o motivo dessa escolha ser a correta e o que cada termo significa dentro do contexto da Java Persistence API (JPA).

A JPA é utilizada para mapear objetos Java para tabelas de um banco de dados, de forma a gerenciar a persistência desses objetos de maneira simples e padronizada. Quando estamos lidando com chaves primárias compostas, ou seja, aquelas formadas por mais de uma coluna no banco de dados, o JPA requer uma abordagem especial para mapear esses campos, e é exatamente isso que a questão aborda.

O termo @Embeddable é utilizado para indicar que a classe marcada é uma classe "embutível" ou "incorporável", que é parte de uma entidade mas não é uma entidade por si só. Isto é, os campos dessa classe serão usados como colunas dentro de uma tabela de outra entidade. No caso da classe PessoaId, ela contém os campos que formarão a chave primária composta e deve ser marcada como @Embeddable para indicar essa funcionalidade.

A anotação @Entity é utilizada para indicar que uma classe é uma entidade JPA, ou seja, que ela será mapeada para uma tabela no banco de dados. No código fornecido, a classe Pessoa deve ser uma entidade, portanto, deve ser marcada com @Entity.

Por fim, a anotação @EmbeddedId é usada para especificar uma chave primária composta que é representada em uma classe de identificação separada. No caso da entidade Pessoa, o campo id é uma instância da classe PessoaId, que foi marcada com @Embeddable. Portanto, o campo id deve ser anotado com @EmbeddedId para indicar que ele contém a chave primária composta da entidade Pessoa.

Assim, a combinação correta das anotações é Embeddable – Entity – EmbeddedId, que representa corretamente o mapeamento de uma chave primária composta em uma entidade JPA, conforme apresentado na alternativa A.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo