Uni- orientation: 所属类 Foo 维护一个 Bars 列表。在数据库中,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 注释来建立和管理实体之间的一对多、多对一和多对多关系?的详细内容。更多信息请关注PHP中文网其他相关文章!