0

だから私は「OrderItem」クラスを持っています。その主キーは、「productID」と「orderID」で構成されていると想定されます (両方とも別のエンティティからの FK 参照)。注釈を使用してそれを設定するにはどうすればよいですか?

前もって感謝します!!!!

テーブル: ordersItems
属性: productID (PK-PK) ------------------> Product
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;
}
4

1 に答える 1

0

外部キーで構築された主キーのフィールドのみを持つ埋め込み可能なドメイン クラスを作成する必要があります。注釈は、外部キー ドメイン クラスのクラス レベル @Embeddable にあります。

ここに EmbeddedId のドキュメントがあります

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

于 2013-10-21T00:34:32.333 に答える