订单接收关系

时间:2016-10-24 11:06:26

标签: java database hibernate spring-boot erd

我有这样的关系模型

enter image description here

这个想法是,可以接收部分订单,也就是说,接收将具有相同订单的多个条目。另一方面,订单将具有相同Receive的多个条目。为了清楚了解,请参阅此图片,

enter image description here

可以轻松保存数据。但是,当我尝试显示接收的详细信息(例如,接收-1)时,我无法针对订单的特定项目显示正确的收到数量,所有其他信息都会正确显示。简而言之,数据保存在接收详细信息中非常好,但无法正确检索。

请告诉我这个型号有什么问题,或者请给我一个解决方案。

提前致谢。

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;
}

这里最重要的因素是ItemReceiptItem都维持双向关系,该关系由ReceiptItem拥有。

此关系应该允许您显示Receipt及其关联的ReceiptItem行,并包含有关Item的任何相关信息。但它也允许您使用有关商品收据的相关信息呈现您的Order和相应的Item行。