Rumah  >  Soal Jawab  >  teks badan

Adakah terdapat cara untuk mengoptimumkan perhubungan ManyToOne menggunakan JPA?

Saya mempunyai pekerja yang bekerja di pelbagai jabatan. Saya mempunyai hubungan OneToMany dalam Employee dan ManyToOne dalam kelas Department.

@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;
}

Jadual yang dibuat dalam MySQL kelihatan seperti ini:

Masalahnya ialah saya akan mempunyai ramai pekerja dan mereka boleh mempunyai beberapa jabatan. Meja jabatan akan menjadi terlalu besar dan nama jabatan akan diulang untuk pekerja yang berbeza seperti yang ditunjukkan dalam imej di atas Saya mempunyai 2xManagement. Soalan saya ialah jika boleh membuat jadual jabatan tanpa id_pekerja (hanya dengan nama jabatan) dan pautan dalam jadual berasingan dengan hanya dua atribut (id_pekerja dan id_jabatan). Adakah saya perlu membuat kelas baharu untuk ini? Bagaimanakah saya boleh mengoptimumkan hubungan ini? Adakah terdapat cara untuk melakukannya?

P粉609866533P粉609866533264 hari yang lalu379

membalas semua(1)saya akan balas

  • P粉391955763

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

    Anda perlu menukar penyelesaian kepada @ManyToMany menggunakan entiti yang lemah, Rujukan: https://www.baeldung.com/hibernate-many-to-many< /a>

    balas
    0
  • Batalbalas