Uni- direction: 所有クラス Foo は Bar のリストを維持します。データベースでは、Bars は Foo への外部キーを持ちます。
<code class="java">@Entity public class Foo { @OneToMany private List<Bar> bars; } @Entity public class Bar { @ManyToOne @JoinColumn(name="fooId") private Foo foo; }</code>
双方向: Foo と Bar は両方とも相互への参照を維持します。
<code class="java">@Entity public class Foo { @OneToMany(mappedBy="foo") private List<Bar> bars; } @Entity public class Bar { @ManyToOne @JoinColumn(name="fooId") private Foo foo; }</code>
単方向: 所有クラス Bar には Foo への参照があります。データベースでは、Foo は Bar への外部キーを持ちます。
<code class="java">@Entity public class Bar { @ManyToOne @JoinColumn(name="fooId") private Foo foo; } @Entity public class Foo { // No corresponding mapping to Bar }</code>
双方向: Foo と Bar は両方とも相互への参照を維持します。
<code class="java">@Entity public class Bar { @ManyToOne @JoinColumn(name="fooId") private Foo foo; } @Entity public class Foo { @OneToMany(mappedBy="foo") private List<Bar> bars; }</code>
ブリッジ テーブルの使用: 関係を保存するための結合テーブルを作成します。
<code class="java">@Entity public class Foo { @ManyToMany @JoinTable(name="FOO_BAR", joinColumns = @JoinColumn(name="fooId"), inverseJoinColumns = @JoinColumn(name="barId")) private List<Bar> bars; } @Entity public class Bar { @ManyToMany @JoinTable(name="FOO_BAR", joinColumns = @JoinColumn(name="barId"), inverseJoinColumns = @JoinColumn(name="fooId")) private List<Foo> foos; }</code>
以上がHibernate と Spring アノテーションを活用して、エンティティ間の 1 対多、多対 1、および多対多の関係を確立および管理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。