我是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中建立多对多关系时,最合适的方法是什么?是使用前面提到的链接实体,还是使用单向或双向关系?我只想坚持最合适的一种,谁更有优势。
任何帮助都将不胜感激。
1条答案
按热度按时间7hiiyaii1#
我建议您始终将其建模为两个双向的一对多关联,因为在我的经验中,没有真实的的多对多关联。在某个时候,有人会告诉您实体之间的关联突然需要一个额外的属性。如果您以前将其建模为多对多关联,那么您可能需要重写一堆代码来处理新的结构。