从maintableentity引用masterdataentity的外键的列数错误

baubqpgj  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(293)

我有一个主数据表。此表的用途是仅保存数据(因此它与其他表没有关系)。
这是masterdataentity

@Id
@Column(name = "TYPE_ID")
private Integer id;

@Id
@Column(name = "DESCRIPTION")
private String description;

在另一个表(函数表)中,我想连接这个表。比如:
这是主表实体:

@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "TYPE_ID")
private MasterDataEntity masterDataEntity;

这里的逻辑意图是maintable应该包含主表的类型\id之一(甚至不是所有行都必须包含)。
我不想在主表的maintable上存储任何类型的信息。我只想将主表中的现有值添加到主表中。
除上述之外,我还进行了以下查询来标记fk关系:

ALTER TABLE MAIN_TABLE ADD TYPE_ID NUMBER;

ALTER TABLE MAIN_TABLE ADD FOREIGN KEY (TYPE_ID ) REFERENCES MASTER_TABLE(TYPE_ID );

通过上面的代码,我得到了一个错误:一个外键引用maintableentity中的masterdataentity,但列数错误。应该是2。
我试图寻找根本原因,但没有得到任何有用的信息。我刚开始冬眠,根据我的要求,我可能会做错事。
有人能告诉我这里出了什么问题,我应该做些什么来达到我的目的吗?
谢谢
p、 s:我只提到了相关信息。很明显,maintentity中还有许多其他列,而masterentity只有2列。如果需要任何信息,请告诉我。

kxeu7u2r

kxeu7u2r1#

可能是因为 MasterDataEntity 有多个主键,因为 id 以及 description 田地有 @Id 注解,
它应该只有一个 TYPE_ID :

@Id
@Column(name = "TYPE_ID")
private Integer id;

@Column(name = "DESCRIPTION")
private String description;

相关问题