Ciao, è possibile creare una associazione unidirezionale OneToOne tra una tabella con chiave composta e una con chiave semplice ?
Ho fatto n prove ma ho errore "... wrong number of column ..."
Capisco che è una forzatura a livello di database, dovrebbe essere ManyToOne...
Ho cercato in rete ma non ho trovato niente...
Descirvo le classi entità (ho omesso tutto quello che non serve).
Questa è l'entità che vorrei owner:
questa è la classe della chiave composta:codice:@Entity @Table(name="CliFor") @IdClass(CliForPK.class) public class CliForVO implements Serializable { private String idCliFor = ""; private Integer tipoCliFor = 0; private FornQuaVO fornQua; ... public CliForVO(){} @Id @Column(length=4) public String getIdCliFor() { return this.idCliFor; } @Id public Integer getTipoCliFor() { return this.tipoCliFor; } ... @OneToOne(cascade=CascadeType.ALL, fetch=FetchType.EAGER, mappedBy="CliForVO") @JoinTable(name = "Fornitori", joinColumns = { @JoinColumn(name = "idForn") }, inverseJoinColumns = @JoinColumn(name = "idCliFor")) public FornQuaVO getFornQua() { return fornQua; } }
Questa è l'entità "figlia"codice:public class CliForPK implements Serializable { private String idCliFor = ""; private int tipoCliFor = 0; public CliForPK(){} public CliForPK(String idCliFor, int tipoCliFor){ this.idCliFor = idCliFor; this.tipoCliFor = tipoCliFor; } public String getIdCliFor() { return this.idCliFor; } public int getTipoCliFor() { return this.tipoCliFor; } ... }
graziecodice:@Entity @Table(name="Fornitori") public class FornQuaVO implements Serializable { private String idForn = ""; ... public FornQuaVO(){} @Id @Column(length=4) public String getIdForn() { return idForn; } ... }

Rispondi quotando