搜索

首页  >  问答  >  正文

有没有办法使用 JPA 优化 ManyToOne 关系?

我有一名员工可以在多个部门工作。我在 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粉609866533P粉609866533385 天前486

全部回复(1)我来回复

  • P粉391955763

    P粉3919557632024-01-30 09:24:27

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

    回复
    0
  • 取消回复