Java 将两个外键列合并到EmbeddedID中
我有两张桌子(商品和超市)。他们有多对多的关系,所以我创建了一个额外的表ProductSupermarket。我希望最后一个表只有一列合并两个外键。到目前为止,我已经实现了这一点,但我一直被ProductSupermarket中的两列所困扰——product\u id和supermarket\u id 产品 超级市场 ProductSupermarketKey 产品超市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有一个列“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;