Manejo de claves primarias compuestas con JPA
El control de versiones de datos requiere la capacidad de duplicar una entidad con diferentes versiones, por lo que es esencial crear un compuesto clave primaria para entidades.
Definición de entidad con clave primaria compuesta
En JPA, las claves primarias compuestas se pueden definir usando las anotaciones @EmbeddedId o @IdClass.
Usando @EmbeddedId
Defina una clase separada (@Embeddable anotada) para la clave y luego anótela con @EmbeddedId en la entidad:
@Entity
public class YourEntity {
@EmbeddedId
private MyKey myKey;
private String columnA;
// getters and setters
}
@Embeddable
public class MyKey implements Serializable {
private int id;
private int version;
// getters and setters
}
Usando @IdClass
Alternativamente, anote la clase con @IdClass y defina los atributos de ID como @Id dentro de la clase:
@Entity
@IdClass(MyKey.class)
public class YourEntity {
@Id
private int id;
@Id
private int version;
}
public class MyKey implements Serializable {
private int id;
private int version;
}
Duplicar entidades con versiones
Una vez definida la entidad, se puede duplicar con una nueva versión. Por ejemplo, para crear una nueva versión de la primera entidad con id=1:
YourEntity newVersion = new YourEntity();
newVersion.setMyKey(new MyKey(1, 1)); // new version
newVersion.setColumnA("Some Other Data");
entityManager.persist(newVersion);
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3