有什么方法可以使用 JPA 优化 ManyToOne 关系吗?

Is there any way to optimize ManyToOne Relationship using JPA?

我有一名员工可以在多个部门工作。我在部门 class.

的 Employee 和 ManyToOne 中有 OneToMany 关系
@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 中创建的 table 如下所示:

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

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