2012-03-22 59 views
7

tôi đang cố gắng để mô hình hóa mối quan hệ này theo liên kết này http://www.javaworld.com/javaworld/jw-01-2008/images/datamodel.gifMapping thêm thuộc tính trong một gia Bảng JPA 2

của các Nhiều bình thường để Nhiều mối quan hệ giữa thứ tự và sản phẩm nhưng tôi không biết làm thế nào để thêm các cột bổ sung trong Tham gia bảng.

@Entity 
@Table(name = "Orders") 
public class Order { 
    @ManyToMany(cascade = CascadeType.ALL) 
    @JoinTable(name = "ORDER_LINES", joinColumns = { @JoinColumn(name = "ORDER_ID") }, inverseJoinColumns = { @JoinColumn(name = "PROD_ID") }) 
    private Set<Product> products; 
} 

@Entity 
@Table(name="PRODUCTS") 
public class Product { 
    @ManyToMany(mappedBy="products") 
    private Set<Order> orders; 
} 

Cách thêm thuộc tính thêm Bảng tham gia vào JPA 2.0?

Cảm ơn

Trả lời

21

Không có khái niệm nào có thuộc tính liên tục bổ sung liên quan đến JPA (2.0). Đó là lý do tại sao mối quan hệ với tài sản thực sự là thực thể trung gian.

Từ cả thực thể Đơn hàng và Sản phẩm, bạn cần mối quan hệ một-nhiều với thực thể mới. Vì mối quan hệ hai chiều, thực thể mới sẽ có mối quan hệ nhiều người một với Đơn hàng và Sản phẩm.

Bạn cần phải đi kiếm cái gì như thế này (chỉ hiển thị các mối quan hệ, id và ánh xạ khác bị tước đi):

@Entity 
@Table(name="order_item") 
public class OrderItem { 
    @ManyToOne 
    private Order order; 
    @ManyToOne 
    private Product product; 
} 

@Entity 
public class Order { 
    @OneToMany (mappedBy = "order") 
    private Set<OrderItem> orderItems; 
} 

@Entity 
public class Product { 
    @OneToMany(mappedBy = "product") 
    private Set<OrderItem> orderItems; 
} 
+0

Cảm ơn .. Tôi nhận điểm của bạn. Tôi có thể yêu cầu để giúp tôi về câu hỏi khác của tôi không? http://stackoverflow.com/questions/9835124/jpa-manytomany-join-table-has-all-attributes-as-pk –

Các vấn đề liên quan