@ManyToMany(mappedBy ="foo")

Nim*_*sky 34 java orm many-to-many jpa

Foo有:

@ManyToMany(mappedBy = "foos")
private Set<Bar> bars
Run Code Online (Sandbox Code Playgroud)

和酒吧有:

@ManyToMany
private Set<Foo> foos
Run Code Online (Sandbox Code Playgroud)

除了table被称为foo_bar或bar_foo之外,mappedBy属性的位置与双向关系有什么不同; 如果没有mappedBy属性,我会得到两个连接表,包括foo_bar和bar_foo.

JB *_*zet 43

文件说:

如果关联是双向的,则一方必须是所有者,一方必须是反向结束(即,在更新关联表中的关系值时将忽略它):

因此,具有该mappedBy属性的一方是反面.没有mappedBy属性的一方是所有者.

所有者方是Hibernate查看哪一方存在的一方.因此,例如,如果在Bar的foos集中添加Foo,Hibernate将在连接表中插入一个新行.相反,如果将一个Bar添加到Foo的一组条形图中,则数据库中不会修改任何内容.