Spring Boot Hibernate?中带有链接实体的双向@ManyToMany

dfty9e19  于 2023-03-02  发布在  Spring
关注(0)|答案(1)|浏览(135)

我是Hibernate的新手,在阅读了文档之后,我对@ManyToMany关系的正确用法感到困惑。
以下是双向示例:

@ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
@JoinTable(name = "person_address",
        joinColumns = @JoinColumn(name = "person_id"
            /*referencedColumnName = "id", nullable = false, updatable = false*/),
        inverseJoinColumns = @JoinColumn(name = "address_id")
)
private List<Address> addresses = new ArrayList<>();

// setAddress() and getAddress() methods

我发现还可以使用Hibernate中的链接实体将多对多关系拆分为一对多和多对一。
在这里,我只想知道在Hibernate中建立多对多关系时,最合适的方法是什么?是使用前面提到的链接实体,还是使用单向或双向关系?我只想坚持最合适的一种,谁更有优势。
任何帮助都将不胜感激。

7hiiyaii

7hiiyaii1#

我建议您始终将其建模为两个双向的一对多关联,因为在我的经验中,没有真实的的多对多关联。在某个时候,有人会告诉您实体之间的关联突然需要一个额外的属性。如果您以前将其建模为多对多关联,那么您可能需要重写一堆代码来处理新的结构。

相关问题