Jpa 找不到一对多关系的表

Jpa 找不到一对多关系的表,jpa,spring-data-jpa,jpa-2.0,Jpa,Spring Data Jpa,Jpa 2.0,我试图实现两个表之间的一对多关系: 主桌商 @Entity @Table public class Merchants { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "id", updatable = false, nullable = false) private int id; @Column private String name; @O

我试图实现两个表之间的一对多关系:

主桌商

@Entity
@Table
public class Merchants {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id", updatable = false, nullable = false)
    private int id;

    @Column
    private String name;

    @OneToMany(mappedBy="id")
    private List<Terminals> terminals;

    @Column
    private String login;
}
但随后我部署了我得到的代码异常:

Caused by: java.sql.SQLSyntaxErrorException: (conn=163) Table 'production.terminals' doesn't exist
Caused by: java.sql.SQLException: Table 'production.terminals' doesn't exist
Query is: alter table terminals drop foreign key FKq779ocbhe9oeeor5591t31vx1
您知道如何解决此问题吗?

请使用下面的代码

@Entity
@Table
public class Merchants {

  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  @Column(name = "merchantId", updatable = false, nullable = false)
  private int merchantId;

  @Column
  private String name;

  @OneToMany(mappedBy="merchants")
  private List<Terminals> terminals;

  @Column
  private String login;
}



@Entity
@Table
public class Terminals {

  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  @Column(name = "id", updatable = false, nullable = false)
  private int id;

  @ManyToOne(fetch=FetchType.LAZY)
  @JoinColumn(name="merchantId")
  private Merchants merchants;

  @Column
  private String mode;
}
@实体
@桌子
公营商人{
@身份证
@GeneratedValue(策略=GenerationType.AUTO)
@列(name=“merchantId”,updateable=false,nullable=false)
私人贸易署;
@纵队
私有字符串名称;
@OneToMany(mappedBy=“商户”)
专用列表终端;
@纵队
私有字符串登录;
}
@实体
@桌子
公营货柜码头{
@身份证
@GeneratedValue(策略=GenerationType.AUTO)
@列(name=“id”,updateable=false,nullable=false)
私有int-id;
@manytone(fetch=FetchType.LAZY)
@JoinColumn(name=“merchantId”)
私人商人;
@纵队
私有字符串模式;
}

现在我得到的原因是:org.hibernate.MappingException:Repeated column in mapping for entity:org.datalis.rest.api.entity.Terminals column:id(应该用insert=“false”update=“false”进行映射)知道如何修复吗?@peter penzov更新了答案。两个表都包含名为“id”的列。所以上面的问题来了。希望这能解决您的映射问题。我已经解决了这个问题,但现在我遇到了以下问题:java.sql.SQLException:Table'production.terminals'不存在可能我没有正确地将实体映射到Spring?运行此“alter Table terminals drop外键FKQ779OCBHE9OER5591T31VX1”在sqlyog或mysql工作台或任何编辑器中查询,然后启动应用程序。否则,请删除表并启动应用程序。
@Entity
@Table
public class Merchants {

  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  @Column(name = "merchantId", updatable = false, nullable = false)
  private int merchantId;

  @Column
  private String name;

  @OneToMany(mappedBy="merchants")
  private List<Terminals> terminals;

  @Column
  private String login;
}



@Entity
@Table
public class Terminals {

  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  @Column(name = "id", updatable = false, nullable = false)
  private int id;

  @ManyToOne(fetch=FetchType.LAZY)
  @JoinColumn(name="merchantId")
  private Merchants merchants;

  @Column
  private String mode;
}