所以我有“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;
}
答案 0 :(得分:0)
您必须创建一个可嵌入的域类,其中只有主键中的字段由外键构成。注释位于外键域类的类级别@Embeddable。
以下是EmbeddedId的文档
http://docs.oracle.com/javaee/6/api/javax/persistence/EmbeddedId.html