Bonjour,

voici mon mapping de table en ejb3
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 ;
et 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="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;
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
 
String request = "select u from Utilisateur u";
		java.util.List<Utilisateur> l = em.createQuery(request).getResultList();
et bien j'obtiens un objet utilisateur avec la liste des discussions associées.
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.