[EJB3] problème de fetch=lazy avec ejb3
Bonjour,
voici mon mapping de table en ejb3
Code:
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:
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:
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.