JPA 2.0 permite fazer o mapeamento de coleções de tipos bási...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é a B - @ElementCollection e @CollectionTable.
O Java Persistence API (JPA) é um framework que permite mapear objetos Java para dados armazenados em um banco de dados relacional de forma padronizada e independente de fornecedor específico. A questão aborda o mapeamento de coleções de tipos básicos, como String, Integer ou Date, que não são entidades por si só mas são colecionados como parte de uma entidade.
Para resolver a questão, é necessário conhecer as anotações corretas fornecidas pelo JPA para realizar esse tipo de mapeamento:
- @ElementCollection: Esta anotação é usada para definir uma coleção de instâncias de um tipo básico ou um tipo Embeddable. Não é usado para entidades relacionadas, mas sim para valores simples ou compostos que não têm uma identidade própria fora da entidade que os contém.
- @CollectionTable: Esta anotação é usada em conjunto com @ElementCollection para especificar a tabela que será usada para armazenar a coleção. A anotação permite definir detalhes da tabela, como o nome, os nomes das colunas, os índices, entre outros.
Essas anotações são parte do JPA 2.0 e foram introduzidas para facilitar o mapeamento de tais coleções, sem a necessidade de criar uma entidade adicional para representar os elementos da coleção.
Portanto, a alternativa B é correta porque @ElementCollection e @CollectionTable são as anotações utilizadas pelo JPA 2.0 para mapear coleções de tipos básicos de forma eficiente e correta, seguindo as especificações do framework.
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
@ElementCollection é usada para mapear uma coleção de tipos básicos dentro de uma entidade. Ela deve ser usada em conjunto com uma anotação de coleção, como @OneToMany, @ManyToMany, ou @OneToOne. Essa anotação indica que uma coleção de tipos básicos será armazenada em uma tabela separada, que é criada automaticamente pelo JPA. Os valores dessa coleção são armazenados como colunas da tabela, junto com uma chave estrangeira que referencia a entidade proprietária da coleção.
@CollectionTable é usada para definir o nome da tabela que será usada para armazenar a coleção de tipos básicos. Essa anotação deve ser usada em conjunto com @ElementCollection. Se não for especificada, o JPA criará uma tabela com um nome padrão.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo