"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo implementar el control de versiones de datos con claves primarias compuestas en JPA?

¿Cómo implementar el control de versiones de datos con claves primarias compuestas en JPA?

Publicado el 2024-11-16
Navegar:942

How to Implement Data Versioning with Composite Primary Keys in JPA?

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);
Último tutorial Más>

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