有沒有辦法使用 JPA 優化 ManyToOne 關係?
P粉609866533
P粉609866533 2024-01-29 13:09:59
0
1
384

我有一位員工可以在多個部門工作。我在 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學習者快速成長!