Relația Many-to-Many descrie scenarii în care entitățile din ambele părți pot fi asociate cu multiple instanțe opuse (de exemplu: un utilizator poate avea mai multe roluri de securitate, iar un rol aparține mai multor utilizatori).
Baza de date relațională necesită o tabelă intermediară de legătură (junction table), pe care JPA o configurează prin intermediul adnotării @JoinTable.
Exemplu: Maparea relației ManyToMany între Utilizatori și Roluri
package ro.dexblog.demo.model;
import jakarta.persistence.*;
import java.util.HashSet;
import java.util.Set;
@Entity
public class UserAccount {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String username;
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(
name = "user_account_roles",
joinColumns = @JoinColumn(name = "user_id"),
inverseJoinColumns = @JoinColumn(name = "role_id")
)
private Set roles = new HashSet<>();
}
@Entity
public class Role {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(unique = true, nullable = false)
private String name; // ex: "ROLE_ADMIN"
}
Întrebări & Exemple de Cod:
@ManyToMany și @JoinTable în Spring Data JPAAi o nelămurire despre utilizarea comenzii
@ManyToMany și @JoinTable în Spring Data JPAsau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.