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;

テーブルが作成されると、HIBERNATE_IDX、FOO_ID、およびBAR_IDの3つの列があります。HIBERNATE_IDXにはすべてゼロが含まれています。

HIBERNATE_IDXとは何ですか?

4

1 に答える 1

0

HIBERNATE_IDXは、結合テーブルの一意のインデックスを保証し、デカルト積を防ぐためのタイブレーカーの一部のようです。一種のつなぎ合わせですが、それは私が思うことです。

于 2012-09-21T14:42:15.717 に答える