Mapowanie klucza obcego wewnątrz klasy Embeddable
ja używameclipselink
dlaJPA
. Mam podmiot, który maklucz kompozytowy wyprodukowane z dwóch pól. Podążam za mnąOsadzalny pola klasy klucza podstawowego (członkowie).
<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>
Mój podmiot będzie przechowywał dane urlopowe związane z personelem, więc próbuję połączyć obiekt personelu i zostawić datę, aby wyprodukować klucz złożony. Oprócz mojej logiki, nie pozwala mi to na odwzorowanie klucza obcego wewnątrz klasy embeddable. Kiedy próbuję użyćNarzędzia JPA -> Generuj tabele z jednostki, daje błąd jak poniżej, co wyjaśnia, ale nie dostaję tego.
<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>
Czy to znaczy, że nie mogę mieć klucza (z klucza złożonego), który jest również kluczem obcym. Czy istnieje alternatywny sposób na osiągnięcie tego ERM? Proszę pomóż. Dzięki