Adakah terdapat cara untuk mengoptimumkan perhubungan ManyToOne menggunakan JPA?
P粉609866533
P粉609866533 2024-01-29 13:09:59
0
1
453

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:

  • Senarai pekerja:
  • Meja jabatan:

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粉609866533
P粉609866533

membalas semua(1)
P粉391955763

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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan