Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用@JoinTable映射时如何指定FK名称?_Java_Oracle_Hibernate - Fatal编程技术网

Java 使用@JoinTable映射时如何指定FK名称?

Java 使用@JoinTable映射时如何指定FK名称?,java,oracle,hibernate,Java,Oracle,Hibernate,我有以下映射: //... @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() {

我有以下映射:

//...
@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;
  //...
}  
/。。。
@表(name=“A”)
公共A类{
@ManyToMany(fetch=FetchType.LAZY)
@JoinTable(name=“A_B”,joinColumns={@JoinColumn(name=“A_ID”)},inverseJoinColumns={@JoinColumn(name=“B_ID”)})
公共集getBs(){
把这个还给我;
}
//...
}
//...
@表(name=“B”)
公共B级{
私有int-id;
私有字符串描述;
//...
}  
如何指定表“A_B”中外键的名称?(FK_A_ID和FK_B_ID)

提前感谢,, Neuquino

您可以使用指定联接表中外键约束的名称

例如:

@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;
}
@ForeignKey(name=“FK_A_ID”,inverseName=“FK_B_ID”)
@JoinTable(name=“A_B”,joinColumns={@JoinColumn(name=“A_ID”)},inverseJoinColumns={@JoinColumn(name=“B_ID”)})
公共集getBs(){
把这个还给我;
}
那么表
A_B
具有以下结构:

  • 名为
    A\u ID
    的列,它对表
    A
    的主键具有外键约束。此外键的名称为
    FK\u ID

  • 名为
    B_ID
    的列,它对表
    B
    的主键具有外键约束。此外键的名称为
    FK_ID


我想更改约束的名称,而不是列的名称。对于简单属性,我使用@ForeignKey,但是对于JoinTable,我不知道怎么做。@KenChan在Hibernate 4.3中,如果没有不推荐的org.Hibernate.annotations.ForeignKey,你知道怎么做吗?这是一个bug:()