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);
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