Bonjou,
Je souhaite optimiser le chargement de trois types d'objet dans mon application:
-Bloc
-Zone
-SousZone
En terme de relation:
-j'ai un bloc qui peut contenir n Zone (OneToMany)
-j'ai une zone qui peut contenir n SousZone (OneToMany)
Sachant que je veux charger tous les objets de ces trois types dans mon application, comment puis je optimiser ce chargement avec hibernate.
J'ai essayé de faire 3 requetes (1 pour chaque type d'objet), mais lorsque je parcours mon graphe d'objets j'ai néanmoins des accès en base:
pour chaque bloc, lorsque j'accède à la méthode getZones()
pour chaque zone, lorsque j'accède à la méthode getSousZones()
Merci pour votre aide.
Code:
@Entity
@Table(name="BIB_U_BLOC"
)
public class Bibubloc implements java.io.Serializable
{
private String id;
private String libelle;
private Set<Bibuzone> bibuzones = new HashSet<Bibuzone>(0);
public Bibubloc() {
}
...
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="ID_BLOC")
public Bibubloc getBibubloc() {
return this.bibubloc;
}
@OneToMany(fetch=FetchType.LAZY, mappedBy="bibubloc")
public Set<Bibuzone> getBibuzones() {
return this.bibuzones;
}
}
@Entity
@Table(name="BIB_U_ZONE"
)
public class Bibuzone implements java.io.Serializable
{
private String id;
private Bibubloc bibubloc;
private String libelle;
private String description;
private Set<Bibusouszone> bibusouszones = new HashSet<Bibusouszone>(0);
public Bibuzone() {
}
...
@OneToMany(fetch=FetchType.LAZY, mappedBy="bibuzone")
public Set<Bibusouszone> getBibusouszones() {
return this.bibusouszones;
}
}
@Entity
@Table(name="BIB_U_SOUSZONE"
)
public class Bibusouszone implements java.io.Serializable
{
private String id;
private Bibcchampsaisie bibcchampsaisie;
private Bibuzone bibuzone;
private String sousZone;
private String libelle;
private String description;
public Bibusouszone() {
}
...
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="ID_ZONE", nullable=false)
public Bibuzone getBibuzone() {
return this.bibuzone;
}
}