je tente de créer une relation de ManyToOne sur clé composite, mais quand j'insérer mon haricot PRES2 j'ai eu cette erreur:Play2/JPA/Ebean OneToMany Mapping, en utilisant un PrimaryKey composite
[error] Caused by: org.h2.jdbc.JdbcSQLException: Duplicate column name "CODE1"; SQL statement:
[error] insert into Pres2 (code1, code2, code3, champ1, code1) values (?,?,?,?,?) [42121-172]
Mon projet est Jouer 2.2.2.
Pourriez-vous m'aider à résoudre mon problème?
Mon code Première Id classe pour le haricot PRES1:
@Embeddable
public class ClePres1 implements Serializable {
private static final long serialVersionUID = 1L;
@Column(name = "code1")
private String code1;
@Override
public int hashCode() {
...
}
@Override
public boolean equals(Object obj) {
...
}
Mon haricot Code PRES1:
@Entity
@Table(Name = "Pres1")
public class Pres1 extends Model {
private static final long serialVersionUID = 1L;
@EmbeddedId
ClePres1 cle;
@OneToMany(mappedBy = "pres1")
private List<Pres2> listPres2;
...
Ma 2ème Id classe pour le haricot Code PRES2:
@Embeddable
public class ClePres2 implements Serializable {
private static final long serialVersionUID = 1L;
@Column(name = "code1")
public String code1;
@Column(name = "code2")
public String code2;
@Column(name = "code3")
public String code3;
@Override
public int hashCode() {
...
}
@Override
public boolean equals(Object obj) {
...
}
Mon PRES2 haricot:
@Entity
@Table(name = "Pres2")
public class Pres2 extends Model {
private static final long serialVersionUID = 1L;
@EmbeddedId
ClePres2 cle;
@Column(name = "champ1")
private String champ1;
@ManyToOne
@JoinColumns({
@JoinColumn(name = "code1",referencedColumnName="code1")
})
private Pres1 pres1;
Veuillez publier l'entité Pres3, il semble que vous ayez une colonne code1 dans embeddable et dans entité. –
désolé, c'est juste une mauvaise copie/passé j'ai édité ma question. est toujours Pres1 et Pres2 – flagadajones