Recherche…


Paramètres

Annotation Objectif
@TableGenerator Spécifie le nom du générateur et le nom de la table où le générateur peut être trouvé
@GeneratedValue Spécifie la stratégie de génération et fait référence au nom du générateur
@ManyToOne Spécifie plusieurs à une relation entre l'employé et le service
@OneToMany (mappedBy = "department") crée une relation bidirectionnelle entre l'employé et le service en se référant simplement à l'annotation @ManyToOne dans l'entité Employé

Relation One to Many

Le mappage un à plusieurs est généralement une relation bidirectionnelle du mappage Many to One. Nous allons prendre le même exemple que nous avons pris pour Many à une cartographie.

Employee.java

@Entity
public class Employee {

    @TableGenerator(name = "employee_gen", table = "id_gen", pkColumnName = "gen_name", valueColumnName = "gen_val", allocationSize = 100)
    @Id
    @GeneratedValue(strategy = GenerationType.TABLE, generator = "employee_gen")
    private int idemployee;
    private String firstname;
    private String lastname;
    private String email;

    @ManyToOne
    @JoinColumn(name = "iddepartment")
    private Department department;

    // getters and setters    
}

Département.java

@Entity
public class Department {

    @TableGenerator(table = "id_gen", pkColumnName = "gen_name", valueColumnName = "gen_val", name = "department_gen", allocationSize = 1)
    @Id
    @GeneratedValue(strategy = GenerationType.TABLE, generator = "department_gen")
    private int iddepartment;
    private String name;

    @OneToMany(mappedBy = "department")
    private List<Employee> employees;

    // getters and setters    
}

Cette relation est représentée dans la base de données comme ci-dessous. entrer la description de l'image ici

Il y a deux points à retenir à propos de jpa one to many mapping:

  • Le plus grand côté est le côté propriétaire de la relation. La colonne est définie de ce côté.
  • Le mappage un à plusieurs est le côté côté inverse, donc l'élément mappedBy doit être utilisé du côté inverse.

L'exemple complet peut être référencé ici



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow