我有这样的关系模型
这个想法是,可以接收部分订单,也就是说,接收将具有相同订单的多个条目。另一方面,订单将具有相同Receive的多个条目。为了清楚了解,请参阅此图片,
可以轻松保存数据。但是,当我尝试显示接收的详细信息(例如,接收-1)时,我无法针对订单的特定项目显示正确的收到数量,所有其他信息都会正确显示。简而言之,数据保存在接收详细信息中非常好,但无法正确检索。
请告诉我这个型号有什么问题,或者请给我一个解决方案。
提前致谢。
答案 0 :(得分:0)
您的第一张图未说明您的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
行。