Mapeamento de chave estrangeira dentro da classe Embeddable
estou usandoeclipselink
paraJPA
. Eu tenho uma entidade, que tem umchave composta fabricado a partir de dois campos. A seguir está minhaImplantável campos da classe de chave primária (membros).
<code> @Embeddable public class LeavePK { @ManyToOne(optional = false) @JoinColumn(name = "staffId", nullable = false) private Staff staff; @Temporal(TemporalType.TIMESTAMP) private Calendar date; //setters and getters } </code>
Minha entidade vai manter os dados de licença relacionados a uma equipe, então estou tentando combinar o objeto da equipe e deixar a data para produzir a chave composta. Além da minha lógica, não está me permitindo ter um mapeamento de chave estrangeira dentro de uma classe embutida. Quando tento usarFerramentas JPA -> Gerar Tabelas da Entidade, dá erro como abaixo, o que explica, mas eu não estou entendendo.
<code>org.eclipse.persistence.exceptions.ValidationException Exception Description: The mapping [staff] from the embedded ID class [class rs.stapp.entity.LeavePK] is an invalid mapping for this class. An embeddable class that is used with an embedded ID specification (attribute [leavePK] from the source [class rs.stapp.entity.Leave]) can only contain basic mappings. Either remove the non basic mapping or change the embedded ID specification on the source to be embedded. </code>
Isso significa que não posso ter uma chave (da chave composta) que também seja uma chave estrangeira. Existe uma maneira alternativa de realizar este ERM? Por favor ajude. obrigado