2

我有以下映射:

//...
@Table(name="A")
public class A{
    @ManyToMany(fetch = FetchType.LAZY)
    @JoinTable(name = "A_B", joinColumns = {@JoinColumn(name = "A_ID")}, inverseJoinColumns = {@JoinColumn(name = "B_ID")})
    public Set<B> getBs() {
            return this.meals;
        }
    //...
}

//...
@Table(name="B")
public class B{
  private int id;
  private String description;
  //...
}  

如何指定表“A_B”中的外键名称?(FK_A_ID 和 FK_B_ID)

提前致谢, Neuquino

4

1 回答 1

2

您可以使用@ForeignKey来指定连接表中外键约束的名称。

例如:

@ForeignKey(name="FK_A_ID" , inverseName="FK_B_ID")
@JoinTable(name = "A_B", joinColumns = {@JoinColumn(name = "A_ID")}, inverseJoinColumns = {@JoinColumn(name = "B_ID")})
public Set<B> getBs() {
      return this.meals;
}

那么 TableA_B的结构如下:

  • 一个名为的列A_ID,它对表的主键具有外键约束A。这个外键的名称是FK_A_ID

  • 一个名为的列B_ID,它对表的主键具有外键约束B。这个外键的名称是FK_B_ID

于 2012-04-17T19:47:51.447 回答