java - Spring JPA 关系与来自另一个关系的外键
问题描述
我正在尝试使用 JPA 在 Springboot 上实现一个小型数据库 shema,但不知道如何定义两个实体之间的关系,其中部分外键来自另一个实体。
这是数据库架构:
我有一个Store
实体,就是销售Products
。多家商店销售相同的产品(实体之间存在多对多关系,未在模式上绘制以保持简单)。
对于交付,每个商店与其选择的供应商签订合同,同一供应商可以为不同的商店工作。另一个实体,Supplier
存储每个供应商和产品的运输条件,并通过多对一关系Store
链接到。Supplier
最后一个实体 Order 表示给定商店中给定产品的订单。与关系Order
相关Store
和关系也是如此。所有这些都在起作用。Product
ManyToOne
当我想要与实体Order
相关时它会得到Shipping
:有一个外键Order.productId
,但另一个Order.store.supplierId
。我需要通过关系Order->Store
来获取外键的值。如何使用 JPA 完成?
这是Order
实体:
public class Order {
@Id
private Integer orderId;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name="productId", referencedColumnName="productId")
private Product product;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name="productId", referencedColumnName="productId")
private Product product;
@Column(name="quantity")
private Integer quantity;
// What should I put here ???
private Shipping shipping;
}
我怎样才能Order.supplier
被 JPA 获取?
解决方案
推荐阅读
- image-processing - 太阳能光伏阴影分析的国家开放激光雷达数据如何实现自动屋顶3d建模?
- c# - 使用 MaterialDesignInXamlToolKit 输入法输入框无法正确定位到 TextBox 的边缘
- excel - 我找不到数据透视表的数据源
- r - R函数转换为宽格式
- c - 为什么我没有得到随机数?
- java - 如何在 url 中使用 API 密钥?请帮忙,看起来很简单,但我完全卡住了
- reactjs - I'm using MUI-Data-Tables and I would like to change the header text color after I click to sort the Column?
- mysql - .Add 与 .AddWithValue
- vue.js - Vuejs:在 vuejs 的计算对象中使用 get 和 set 属性会显示错误
- html - 为什么媒体查询停止在括号上工作?