多对多映射

  • @TableGenerator 和 @GeneratedValue 用于使用 jpa 表生成器自动创建 ID。
  • @ManyToMany 批注指定 Employee 和 Project 实体之间的关系。
  • @JoinTable 指定要用作连接表的表的名称 jpa 使用 name =“employee_project”在 Employee 和 Project 之间进行多对多映射。这样做是因为没有办法确定 jpa 多对多映射的所有权,因为数据库表不包含引用其他表的外键。
  • @JoinColumn 指定将引用要被视为关联所有者的实体的列的名称,而 @ inverseJoinColumn 指定关系的反面名称。 (你可以选择任何一方作为所有者。只需确保这些方面的关系)。在我们的例子中,我们选择 Employee 作为所有者,因此 @JoinColumn 引用连接表 employee_project 中的 idemployee 列,而 @InverseJoinColumn 引用 idproject,它是 jpa 多对多映射的反面。
  • Project 实体中的 @ManyToMany 注释显示反向关系,因此它使用 mappedBy = projects 来引用 Employee 实体中的字段。

这里可以参考完整的例子