¿Alguien sabe si es posible establecer una referencia posterior desde dentro de un JPA @EmbeddedId
?Cómo establecer una referencia inversa desde @EmbeddedId en JPA
Así, por ejemplo, hay una entidad del Formulario
@Entity
public class Entity1 {
@Id
@GeneratedValue
private String identifier;
private Entity1 relationToEntity1;
//Left out the getters and setters for simplicity
}
y una segunda entidad con una identificación incrustado compleja. Una parte de esta segunda entidad es una referencia a su entidad matriz. De este modo:
@Entity
public class Entity2 {
@EmbeddedId private Entity2Identifier id;
//Left out the getters and setters for simplicity.
}
@Embedabble
public class Entity2Identifier {
private String firstPartOfIdentifier;
private Entity1 parent;
//Left out the getters and setters for simplicity.
}
Cuando trato de guardar una construcción de este tipo a través de la APP (Aplicación es EclipseLink) a una base de datos consigo varias excepciones de la forma:
Exception [EclipseLink-93] (Eclipse Persistence Services - 1.1.0.r3639-SNAPSHOT):
org.eclipse.persistence.exceptions.DescriptorException
Exception Description: The table [ENTITY1] is not present in this descriptor.
Descriptor: RelationalDescriptor(test.Entity2 --> [DatabaseTable(ENTITY2)])
¿Alguien se encontró con un problema así y tiene una solución?
OK. Creo que mi ejemplo fue simple. El padre en realidad tiene un ID embebido complejo, que consta de dos cadenas, también. Es por eso que no puedo simplemente hacer referencia a su ID. – ali
Eso es simple también. He actualizado mi ejemplo anterior para usar un EmbeddedId en la Entidad 1. –
¡@MapsId es el ganador! Tan útil. –