Estoy usandopara JPA
. Tengo una entidad que tiene una clave compuesta fabricada en dos campos. A continuación está mi incrustable campos de clase de clave primaria (miembros).Asignación de clave externa dentro de clase incrustable
@Embeddable
public class LeavePK {
@ManyToOne(optional = false)
@JoinColumn(name = "staffId", nullable = false)
private Staff staff;
@Temporal(TemporalType.TIMESTAMP)
private Calendar date;
//setters and getters
}
Mi entidad se va a celebrar dejar los datos relacionados con un personal, así que trato de combinar objeto personal y la fecha de dejar de producir clave compuesta. Aparte de mi lógica, no me permite tener una asignación de clave externa dentro de la clase incrustable. Cuando trato de usar herramientas JPA -> Generar tablas desde la entidad, se produce un error como el siguiente, lo que explica, pero no lo estoy obteniendo.
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.
Qué significa, no puedo tener una clave (de clave compuesta) que también es una clave externa. ¿Hay alguna manera alternativa de lograr este ERM? Por favor ayuda. Gracias