代码之家  ›  专栏  ›  技术社区  ›  Saurabh Tiwari

MainTableEntity中引用MasterDataEntity的外键的列数错误

  •  0
  • Saurabh Tiwari  · 技术社区  · 6 年前

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

    这是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上存储任何类型的信息。我只想将主表中的现有值添加到主表中。

    除上述内容外,我还进行了以下查询以标记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。

    有人能告诉我这里出了什么问题,我应该做些什么来达到我的目的?

    注:我只提到了相关信息。MainEntity中显然还有许多其他列,而MasterEntity只有两列。如果需要任何信息,请告诉我。

    1 回复  |  直到 6 年前
        1
  •  0
  •   m fauzan abdi    6 年前

    可能是因为 MasterDataEntity id description 田里有 @Id 注释,
    它应该只有一个是给你的 TYPE_ID :

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