1

我从不这样做,但我项目中的某个人在 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;

创建表时,它有 3 列,HIBERNATE_IDX、FOO_ID 和 BAR_ID。HIBERNATE_IDX 包含全零。

什么是 HIBERNATE_IDX?

4

1 回答 1

0

似乎 HIBERNATE_IDX 是决胜局的一部分,以保证连接表上的唯一索引并防止笛卡尔积。有点拼凑,但我就是这么想的。

于 2012-09-21T14:42:15.717 回答