Bonjour,
voici mon mapping de table en ejb3et l'autre classe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 @Entity @Table(name="UTILISATEUR") public class Utilisateur { @Id @Column(name="UTILISATEUR_ID") @GeneratedValue(strategy=GenerationType.AUTO) private int id; @Basic @Column(name="UTILISATEUR_PSEUDO", nullable=false, unique=true) private String pseudo; @OneToMany(fetch=FetchType.LAZY) @JoinColumn(name="DISCUSSION_ID") private java.util.Collection<Discussion> discussions ;
jusqu'ici tout va bien, la creation fonctionne, mais lorsque je veux sélectionner seulement l'utilisateur (sans les objets discussion lui étant associé), par la requete suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 @Entity @Table(name="DISCUSSION") public class Discussion { @Id @Column(name="DISCUSSION_ID") @GeneratedValue(strategy=GenerationType.AUTO) private int id; @Basic @Column(name="DISCUSSION_LIBELLE", nullable=false, unique=true) private String libelle; @ManyToOne(fetch=FetchType.LAZY) @JoinColumn(name="UTILISATEUR_ID",nullable=false) private Utilisateur utilisateur;
et bien j'obtiens un objet utilisateur avec la liste des discussions associées.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 String request = "select u from Utilisateur u"; java.util.List<Utilisateur> l = em.createQuery(request).getResultList();
Pourtant l'association est définie comme lazy !
Je ne vois pas de quoi ça vient, pouvez-vous m'aider, svp ?
Merci d'avance.
PS : est-ce que quelqu'un pourrait m'expliquer simplement les différents "join" des requetes ? je trouve des explications sur internet, mais c'est pas très clair, et dans quel cas utiliser l'un plutot que l'autre. Re merci d'avance.
Partager