首页 > 解决方案 > 在特殊情况下在@JoinColumn 注释中添加多于一列

问题描述

我有一个main实体类和其他实体类由实体类和应用程序中的其他一些base类继承,实体类有一列不是实体中的主键列,现在我在类中有一个连接表,我想在其中用实体的主键加入ie 。但它显示错误,因为应该是在注释中添加它的主键。我已经在我的数据库中执行了 DDL 命令以将主键设置为并作为连接表的外键。但是在数据库中保存数据时,该列是空的,可能是因为我没有 mainmaindatebasemaindateiddatejoinColumn(id, date)datedate在我的 java spring boot 代码的加入列中,我该如何解决这个问题?

class Main extends Base {
  @Id
  private String id;
  
  @ManyToMany
  @JoinTable(
    name = "joined_table",
    joinColumns = @JoinColumn(name = "id"),
    inverseJoinColumns = @JoinColumn(name = "id_2")
  )
  private List<Main_2> id_2;
}

class Main_2 {
  @Id
  private String id_2;
  
  private String dummyColumn;
}

class Base extends Serializable {
  
  //other columns
  
  @Column(name = "date")
  private long date;
}

如何使用datecolumn in@JoinColumn以便joined_table将列作为id, id_2, date

我无法更改Base实体。并且也不能将所有列从base实体带到main实体并date作为@Id。请帮我找到其他解决方案。

标签: javaspring-boothibernatespring-data-jpa

解决方案


推荐阅读