有没有办法使用 JPA 优化 ManyToOne 关系?
P粉609866533
P粉609866533 2024-01-29 13:09:59
0
1
381

我有一名员工可以在多个部门工作。我在 Employee 中有 OneToMany 关系,在 Department 类中有 ManyToOne。

@Entity
public class Employee {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;
    
    @Size(min = 3, max = 10, message = "Invalid name")
    private String name;
    @Email
    private String email;
    
    @OneToMany(mappedBy = "employee")
    private List<Department> departments;
}

@Entity
public class Department {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String department;
    
    @JsonIgnore
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "employee_id", referencedColumnName = "id")
    private Employee employee;
}

在 MySQL 中创建的表如下所示:

  • 员工表:
  • 部门表:

问题是我将有多名员工,他们可以有多个部门。部门表将太大,并且不同员工的部门名称将重复,如上图所示,我有 2xManagement。我的问题是是否可以创建没有employee_id(仅具有部门名称)的部门表,并在仅具有两个属性(employee_id 和department_id)的单独表中进行链接。我需要为此创建一个新课程吗?我怎样才能优化这种关系?有办法做到吗?

P粉609866533
P粉609866533

全部回复(1)
P粉391955763

您需要使用弱实体将解决方案更改为@ManyToMany, 参考文献: https://www.baeldung.com/hibernate-many-to-many

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!