"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como implementar o versionamento de dados com chaves primárias compostas em JPA?

Como implementar o versionamento de dados com chaves primárias compostas em JPA?

Publicado em 2024-11-16
Navegar:622

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

Manipulação de chave primária composta com JPA

O versionamento de dados requer a capacidade de duplicar uma entidade com versões diferentes, tornando essencial a criação de um composto chave primária para entidades.

Definição de entidade com chave primária composta

No JPA, chaves primárias compostas podem ser definidas usando as anotações @EmbeddedId ou @IdClass.

Usando @EmbeddedId

Defina uma classe separada (@Embeddable anotada) para a chave e, em seguida, anote-a com @EmbeddedId na entidade:

@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

Como alternativa, anote a classe com @IdClass e defina os atributos de ID como @Id dentro da classe:

@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;
}

Duplicando Entidades com Versões

Uma vez definida a entidade, ela pode ser duplicada com uma nova versão. Por exemplo, para criar uma nova versão da primeira entidade com id=1:

YourEntity newVersion = new YourEntity();
newVersion.setMyKey(new MyKey(1, 1)); // new version
newVersion.setColumnA("Some Other Data");
entityManager.persist(newVersion);
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3