Hibernate:由外键构成的主键

时间:2013-10-20 22:08:11

标签: java hibernate jpa

所以我有“OrderItem”类。它的主键是“productID”和“orderID”(来自其他实体的FK引用)。 如何使用注释进行设置?

提前致谢!!!!

表格 的: ordersItems
属性 : productID(PK-PK)------------------>产品
orderID(PK-PK)------------------>为了

鉴于这些实体:

@Entity
@Table(name="products")
public class Product {

    @Id
    @Column(name="productID")
    private Integer id;
    private String description;
}


@Entity
@Table(name="orders")
public class Order{

    @Id
    private int orderID;

    @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
    @JoinColumn(name="orderID")
    private List<OrderItem> items;
}

@Entity
@Table(name="ordersItems")
public class OrderItem{

    @ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE} )
    @JoinColumn(name="productID")
    private Product product;
    private int quantity;
    private float price;
}

1 个答案:

答案 0 :(得分:0)

您必须创建一个可嵌入的域类,其中只有主键中的字段由外键构成。注释位于外键域类的类级别@Embeddable。

以下是EmbeddedId的文档

http://docs.oracle.com/javaee/6/api/javax/persistence/EmbeddedId.html