Sök…


parametrar

Anteckning Ändamål
@TableGenerator Anger generatornamn och tabellnamn där generator kan hittas
@GeneratedValue Anger generationsstrategi och hänvisar till namnet på generator
@ManyToOne Anger många till en relation mellan anställd och avdelning
@OneToMany (mappedBy = "kategorierna") skapar dubbelriktad relation mellan anställd och avdelning genom att helt enkelt hänvisa till @ManyToOne-kommentar i anställds enhet

En till många-relation

En till många kartläggning är i allmänhet helt enkelt en dubbelriktad relation mellan många till en kartläggning. Vi kommer att ta samma exempel som vi tog för många till en kartläggning.

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    
}

Department.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    
}

Detta förhållande representeras i databasen enligt nedan. ange bildbeskrivning här

Det finns två punkter att komma ihåg om jpa en till många kartläggning:

  • Många till ena sidan är den ägda sidan av förhållandet. Kolumnen definieras på den sidan.
  • En till många kartläggning är den omvända sidan, så det mappedBy-elementet måste användas på den omvända sidan.

Komplett exempel kan hänvisas här



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow