I have a Table with a composite PK : Customer I have a View with no PK : Purchase
To bind my Entity, Hibernate forces me to declare a PK. So I've created a composite PK For Purchase.
Puchase:
@Entity
@Table(name = "PURCHASE")
public class Purchase {
@EmbeddedId
private PurchasePK id;
}
PuchasePK:
@Embeddable
public class PurchasePK {
@Column(name = "CUST_LASTNAME")
private String custLastname;
@Column(name = "OBJ_NAME")
private Long objectName;
}
Customer is straight forward :
@Entity
@Table(name = "CUSTOMER")
public class Customer {
@EmbeddedId
private CustomerPK id;
}
With its composite PK:
@Embeddable
public class CustomerPK {
@Column(name = "CUST_LASTNAME")
private String custLastname;
@Column(name = "CUST_NAME")
private Long custName;
}
Now I want to create a OneToMany attribut in Customer by matching both table CUST_NAME.
@OneToMany
private List<Purchase> listPurchases;
How can i do that?
I've searched quite a bit and it always comes down to not being able to do FK on 1 column if the PK has 2 columns ...
PS: I'm using JPA 1, so I don't have access to @MapsId.
PS2: My real model is not about Customer & purchase and the attributs used for the PKs are not varchar but Long.