andbin ha scritto:
Per le chiavi primarie composite ci sono due opzioni: usare @IdClass oppure @EmbeddedId. Se vuoi che nella tua entity ci siano più @Id, allora va usato @IdClass. E' un po' lungo da spiegare, cerca in rete.
Da quanto ho capito,
si crea una classe a parte che mappa le due colonne che fungono da chiave composta, annotandolo con @Embeddable, costruttore, annotation a mappare le colonne, e la si riporta nella classe principale
@Embeddable
public class MyPk implements Serializable {
@Column(name = "nome")
private String nome;
@Column(name = "cognome")
private String cognome;
public myPk () {
}
public myPk (String nome, String cognome) {
this.nome= nome;
this.codiceSoc = cognome;
}
Mentre nella entity:
@Entity
@Table(name = "myTab", schema = "mySchema")
public class Persona{
@EmbeddedId
private MyPk;