Java 什么是HIBERNATE_IDX和@JoinTable

Java 什么是HIBERNATE_IDX和@JoinTable,java,hibernate,Java,Hibernate,我从来没有这样做过,但我的项目中有人在Foo和Bar之间建立了一种多对多的关系。Foo和Bar都有唯一的系统生成ID。关于Foo,我有以下代码: @ManyToMany(targetEntity = Bar.class, cascade = CascadeType.ALL, fetch = FetchType.EAGER) @JoinTable(name = "FOO_BAR_LNK", joinColumns = {@JoinColumn(name = "FOO_ID",

我从来没有这样做过,但我的项目中有人在Foo和Bar之间建立了一种多对多的关系。Foo和Bar都有唯一的系统生成ID。关于Foo,我有以下代码:

  @ManyToMany(targetEntity = Bar.class, cascade = CascadeType.ALL, fetch = FetchType.EAGER)
  @JoinTable(name = "FOO_BAR_LNK", 
      joinColumns = {@JoinColumn(name = "FOO_ID", referencedColumnName = "ID")}, 
      inverseJoinColumns = {@JoinColumn(name = "BAR_ID", referencedColumnName = "ID")})
  private Set<Bar> bars;
@ManyToMany(targetEntity=Bar.class,cascade=CascadeType.ALL,fetch=FetchType.EAGER)
@JoinTable(name=“FOO\u BAR\u LNK”,
joinColumns={@JoinColumn(name=“FOO_ID”,referencedColumnName=“ID”)},
inverseJoinColumns={@JoinColumn(name=“BAR\u ID”,referencedColumnName=“ID”)}
私人酒吧;
创建表时,它有3列:HIBERNATE\u IDX、FOO\u ID和BAR\u ID。HIBERNATE\u IDX包含所有零


什么是HIBERNATE_IDX?

HIBERNATE_IDX似乎是一个平衡断路器的一部分,以保证联接表上的唯一索引并防止笛卡尔乘积。有点像拼凑起来的,但我就是这么想的