2

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

例如:用户到用户组

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

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

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

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

  1. 表现
  2. 代码维护

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

4

1 回答 1

6

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

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

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

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

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

于 2012-11-28T08:05:19.293 回答