Spring JPA 与来自另一个关系的外键的关系

问题描述

我正在尝试使用 JPA 在 Springboot 上实现一个小的 db shema,但无法弄清楚如何定义两个实体之间的关系,其中部分外键来自另一个实体。

这是数据库架构:

Database Schema

我有一个 Store 实体,正在销售 Products。多家商店销售相同的产品(为了简单起见,实体之间存在 ManyToMany 关系,未绘制在架构上)。

对于送货,每个商店都与其选择的供应商签订合同,同一供应商可以为不同的商店工作。另一个实体 supplier 存储每个供应商和产品的运输条件,StoresupplierManyToOne 关系链接..

最后一个实体 Order 表示给定商店中给定产品的订单。所以 OrderStoreProductManyToOne 关系。所有这些都在起作用。

当我想让 OrderShipping 实体相关时,它会得到: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;
    
}
    

如何让 JPA 获取 Order.supplier

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)