gpt4 book ai didi

jpa - 如何在 JPA 实体中设计多对多关系?

转载 作者:行者123 更新时间:2023-12-02 17:46:45 27 4
gpt4 key购买 nike

我试图了解设计具有多对多关系的 2 个实体的更好方法是什么?在数据库中,这两个实体之间将有一个连接表。但是我在创建我的实体时是否必须遵循相同的方法?

例如:用户到用户组

一个用户可能属于多个组,一个组可能包含多个用户。

在关系数据库中,我将有 3 个表,如 User、User2Group、Group

因此,当我创建我的 JPA 实体时,我应该为 3 个表提供 3 个实体,还是通过提供适当的注释 (@ManytoMany) 只提供 2 个实体。

由于我是 JPA 的新手,我试图从以下角度理解好的和坏的方面:

  1. 表现
  2. 代码维护

谢谢,您的输入将不胜感激。

最佳答案

不,您不需要将连接表映射为实体。只需使用 ManyToMany 注释:

public class User {
...
@ManyToMany
private Set<Group> groups;
}

public class Group {
...
@ManyToMany(mappedBy = "groups")
private Set<User> users;
}

如果连接表不是纯连接表,您只需要将其映射为一个实体,即如果它有其他信息,例如用户进入组的日期。

映射对性能的影响很小。重要的是你如何使用和查询实体,以及数据库是如何设计的(索引等)

关于jpa - 如何在 JPA 实体中设计多对多关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13599971/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com