JPA composite primary key [duplicate] JPA composite primary key [duplicate] sql-server sql-server

JPA composite primary key [duplicate]


Recently I created ManyToMany relation using Composite Primary key and annotation as bi directional @OneToMany. This code works flawless. Maybe it will help:

Mapping ManyToMany with composite Primary key and Annotation:


Since you are using @IdClass, the PricePK class need not be marked with the @Embeddable annotation. An example is given in http://www.java2s.com/Code/Java/JPA/SetIdClassforCompoundKey.htm

I tried your code removing the @Embeddable on PricePK class, and the price table generated in MYSQL database with not null fields.

Following is how you could use @EmbeddedId to achieve the required result:(getters and setters omitted)

@Entity@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)public class Price {    @EmbeddedId    PricePK pricePk;}@Embeddablepublic class PricePK implements Serializable {    @ManyToOne(optional = false)    private Product product;    @ManyToOne(optional = false)    private Currency currency;}