Nou Generator de prompt AI — scrie prompturi mai bune pentru ChatGPT, Claude și Gemini →

@ManyToMany și @JoinTable în Spring Data JPA în Spring Boot

data Spring Boot 3.x / Jakarta Persistence Q&A / Distribuie cod

Modelarea relațiilor multe-la-multe prin tabele de asociere intermediare în Spring Data JPA și optimizarea încărcării colecțiilor.

Sintaxă
@ManyToMany / @JoinTable(name = "user_roles", joinColumns = ...)

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"
}

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: @ManyToMany și @JoinTable în Spring Data JPA

Ai o nelămurire despre utilizarea comenzii @ManyToMany și @JoinTable în Spring Data JPA sau 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.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.