使用 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 文档