您的第一張圖並未說明您的Receive-1
/Receive-2
表和您的訂單Item
表之間的關係。我不確定這是否是一個疏忽,因爲你的第二個圖清楚地說明了相關的項目。
如果我正在建模,我可能會選擇數據模型的一個小改動。
@Entity
public class Receipt {
@ManyToOne
private Order order;
@OneToMany(mappedBy = "receipt")
private List<ReceiptItem> entries;
}
@Entity
public class ReceiptItem {
@ManyToOne
private Receipt receipt;
@ManyToOne
private Item item;
}
@Entity
public class Item {
@OneToMany(mappedBy = "item")
private List<ReceiptItem> receipts;
}
這裏最大的重要因素是,無論Item
和ReceiptItem
保持雙向關係,這是由ReceiptItem
擁有。
這種關係應該允許您顯示Receipt
及其關聯的ReceiptItem
行,幷包含有關Item
的任何相關信息。但是它也可以讓您在Order
和適當的Item
行中顯示關於物品收據的相關信息。