使用 Hibernate 託管連線表的雙向多對多

@Entity
@Table(name="FOO")
public class Foo {
    private UUID fooId;
    
    @OneToMany
    @JoinTable(name="FOO_BAR",
        joinColumns = @JoinColumn(name="fooId"),
        inverseJoinColumns = @JoinColumn(name="barId"))
    private List<Bar> bars;
}

@Entity
@Table(name="BAR")
public class Bar {
    private UUID barId;
    
    @OneToMany
    @JoinTable(name="FOO_BAR",
        joinColumns = @JoinColumn(name="barId"),
        inverseJoinColumns = @JoinColumn(name="fooId"))
    private List<Foo> foos;
}

使用 Hibernate 管理的中間連線表指定許多 Foo 物件與許多 Bar 物件之間的關係。

Foo 物件作為行儲存在名為 FOO 的表中。Bar 物件作為行儲存在名為 BAR 的表中。FooBar 物件之間的關係儲存在名為 FOO_BAR 的表中。然而,這意味著沒有 FooBar 物件作為應用程式的一部分。

StackOverflow 文件