Java 将两个外键列合并到EmbeddedID中

Java 将两个外键列合并到EmbeddedID中,java,mysql,spring,spring-data-jpa,spring-data,Java,Mysql,Spring,Spring Data Jpa,Spring Data,我有两张桌子(商品和超市)。他们有多对多的关系,所以我创建了一个额外的表ProductSupermarket。我希望最后一个表只有一列合并两个外键。到目前为止,我已经实现了这一点,但我一直被ProductSupermarket中的两列所困扰——product\u id和supermarket\u id 产品 超级市场 ProductSupermarketKey 产品超市 您可以在这里检查:谢谢,但是实现本文所说的我仍然有两个列而不是一个列。您所说的“我希望最后一个表只有一个列合并两个外键”到底是

我有两张桌子(商品和超市)。他们有多对多的关系,所以我创建了一个额外的表ProductSupermarket。我希望最后一个表只有一列合并两个外键。到目前为止,我已经实现了这一点,但我一直被ProductSupermarket中的两列所困扰——product\u id和supermarket\u id

产品

超级市场

ProductSupermarketKey

产品超市


您可以在这里检查:谢谢,但是实现本文所说的我仍然有两个列而不是一个列。您所说的“我希望最后一个表只有一个列合并两个外键”到底是什么意思?我希望表ProductSupermarket有一个列“product\u supermarket\u id”,合并两个主键,例如,“15”-id为1的产品和id为5的超市在“连接”中“合并”?你知道会有冲突,对吧?
@Entity
@Table(name = "product")
public class Product{

   @Id
   @GeneratedValue(strategy= GenerationType.IDENTITY)
   @Column(name = "product_id")
   private Long productID;
   ..
@Entity
@Table(name = "supermarket")
public class Supermarket{

   @Id
   @GeneratedValue(strategy= GenerationType.IDENTITY)
   @Column(name = "supermarket_id")
   private Long supermarketID;
   ...
@Embeddable
public class ProductSupermarketKey implements Serializable {
  @Column(name="product_id")
  private Long productID;

  @Column(name="supermarket_id")
  private Long supermarketID;

  public ProductSupermarketKey (){}

  public ProductSupermarketKey (Long productID, Long supermarketID) {
    this.productID = productID;
    this.supermarketID = supermarketID;
  }
@Entity
@Table(name = "date_event")
public class ProductSupermarket implements Serializable {

  @EmbeddedId
  private ProductSupermarketKey id;

  @ManyToOne(fetch = FetchType.LAZY)
  @JoinColumn(name = "product_id", insertable = false, updatable = false)
  private Product product;

  @ManyToOne(fetch = FetchType.LAZY)
  @JoinColumn(name = "supermarket_id", insertable = false, updatable = false)
  private Supermarket supermarket;