Sto utilizzando eclipselink
per JPA
. Ho un'entità, che ha una chiave composita fabbricata su due campi. Di seguito sono riportati i miei campi Embeddable primary key (membri).Mappatura chiavi esterne all'interno della classe incorporabile
@Embeddable
public class LeavePK {
@ManyToOne(optional = false)
@JoinColumn(name = "staffId", nullable = false)
private Staff staff;
@Temporal(TemporalType.TIMESTAMP)
private Calendar date;
//setters and getters
}
mio entità sta per tenere lasciare i dati relativi ad uno staff, quindi sto cercando di coniugare oggetto personale e data di lasciare per la produzione di chiave composta. A parte la mia logica, non mi permette di avere una mappatura di chiavi estranee all'interno di una classe incorporabile. Quando provo a usare gli strumenti JPA -> Genera tabelle dall'entità, dà errore come di seguito, il che spiega, ma non lo capisco.
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.
Significa che non posso avere una chiave (dalla chiave composita) che è anche una chiave esterna. Esiste un modo alternativo per realizzare questo ERM? Per favore aiuto. Grazie