-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 6 posts ] 
Author Message
 Post subject: 1.3.6.Travailler avec des liens bidirectionnels
PostPosted: Wed Dec 14, 2005 5:49 pm 
Newbie

Joined: Tue Dec 13, 2005 1:11 pm
Posts: 6
Location: casaBlanca
Bonjour a tous,
je lis le titoriel de de la doc hibernate3.1, et c etais bien jusquau paragraphe 1.3.6, ou :


Code:
class Person{
//....

public void addToEvent(Event event) {
    this.getEvents().add(event);
    -> event.getParticipants().add(this);// !!!!!!!!!
}
}


mais pour quoi on doit :ajouter une référence de Person à la collection d'un Event, puisque on a ajouter une référence de Event à la collection d'un Person.
la doc dit aussi : Cette "configuration du lien des deux côtés" est absolument nécessaire et vous ne devriez jamais oublier de le faire.

donc ca sert pas a grand chose le mapign de "many-to-many".

je crois que j ai pas encore gouter la creme d hibernate :(
mA question :
est ce que peut eviter ca grace a une strategie de chargement?

salut


Top
 Profile  
 
 Post subject:
PostPosted: Thu Dec 15, 2005 9:11 am 
Hibernate Team
Hibernate Team

Joined: Thu Dec 18, 2003 9:55 am
Posts: 1977
Location: France
pourquoi penses tu que tu ne devrais pas le faire?

Hibernate n'est pas responsable de gérer tes instances à ta place, il est responsable de te permettre de récupérer une image objet de tes datas et inversement de persister tes objets sous forme Data, mais pas de gérer des références croisées entre instances en mémoire...

_________________
Anthony,
Get value thanks to your skills: http://www.redhat.com/certification


Top
 Profile  
 
 Post subject: re:
PostPosted: Thu Dec 15, 2005 11:31 am 
Newbie

Joined: Tue Dec 13, 2005 1:11 pm
Posts: 6
Location: casaBlanca
Quote:
>pourquoi penses tu que tu ne devrais pas le faire?

Car je pense si je le fais pas, j aurai pas la liste des participants ajour dans la class Event,
mais ce que je veux :c quand je fais un get() List Participants sur l objet Event –hibernate détecte la modif déjà faite(1) - il récupère la liste des participants ajour.



Quote:
>il est responsable de te permettre de récupérer une image objet de tes datas et inversement de persister tes objets sous forme Data,

alors c ca ce que je veux quand je fais un get() list Participants, hibernate recupere l image objet de la data-ce data cotient deja un nouveau participant - donc on recupre bien la list des participants ajour sans faire le (2).

Quote:
>mais pas de gérer des références croisées entre instances en mémoire

moi aussi je veux pas qu il le fasse.


-------------------------------------------
1:
Code:
// class Person
//method pour ajouter une personne a un evenement
public void addToEvent(Event event) {
    this.getEvents().add(event);
}


2:
Code:
//ajout explicite  de la personne a la list des participant
-> event.getParticipants().add(this);// !!!!!!!!!


Top
 Profile  
 
 Post subject: Re: re:
PostPosted: Thu Dec 15, 2005 11:57 am 
Newbie

Joined: Tue Dec 13, 2005 1:11 pm
Posts: 6
Location: casaBlanca
anasseh wrote:
Quote:
>pourquoi penses tu que tu ne devrais pas le faire?

Car je pense si je le fais pas, j aurai pas la liste des participants ajour dans la class Event,
mais ce que je veux :c quand je fais un get() List Participants sur l objet Event –hibernate détecte la modif déjà faite(1) - il récupère la liste des participants ajour.



Quote:
>il est responsable de te permettre de récupérer une image objet de tes datas et inversement de persister tes objets sous forme Data,

alors c ca ce que je veux quand je fais un get() list Participants, hibernate recupere l image objet de la data-ce data cotient deja un nouveau participant - donc on recupre bien la list des participants ajour sans faire le (2).
on peut faire ca ?

Quote:
>mais pas de gérer des références croisées entre instances en mémoire

moi aussi je veux pas qu il le fasse.




-------------------------------------------
1:
Code:
// class Person
//method pour ajouter une personne a un evenement
public void addToEvent(Event event) {
    this.getEvents().add(event);
}


2:
Code:
//ajout explicite  de la personne a la list des participant
-> event.getParticipants().add(this);// !!!!!!!!!


Top
 Profile  
 
 Post subject:
PostPosted: Thu Dec 15, 2005 12:49 pm 
Hibernate Team
Hibernate Team

Joined: Thu Dec 18, 2003 9:55 am
Posts: 1977
Location: France
que ce soit clair, losque tu récupères un objet via hibernate (load, get, HQL) les associations sont chargées de manière transparente (à la demande ou agressivement selon ton parametrage et la requete que tu effectues).

L'exemple parle d'une action que le développeur code pour associer un élément à une collection dans le cas d'une association bidirectionnelle ... dans ce cas tu dois agir sur les deux extremités de l'association, pour la fiabilité des instances que tu manipules.

_________________
Anthony,
Get value thanks to your skills: http://www.redhat.com/certification


Top
 Profile  
 
 Post subject:
PostPosted: Mon Dec 19, 2005 6:23 am 
Newbie

Joined: Tue Dec 13, 2005 1:11 pm
Posts: 6
Location: casaBlanca
merci de votre explication,


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 6 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.