-->
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.  [ 2 posts ] 
Author Message
 Post subject: Questions générales
PostPosted: Sun Aug 28, 2005 4:20 am 
Newbie

Joined: Sun Aug 28, 2005 3:50 am
Posts: 3
Bonjour,

Je commence à travailler avec Hibernate. Je n'ai pas commencé à l'utilliser dans mes développement mais j'ai lu la documentation fournie avec Hibernate et je me pose quelques questions (certaines d'ordre général, et quelques unes qui concernent des détails). J'ai parcouru le forum et je n'ai pas trouvé de réponses à mes questions.

1. Quelle est la différence entre <many-to-one> avec l'attribut unique et one-to-one> avec l'attribut property-ref ? Est-ce qu'on peut les utiliser tous les 2 dans les mêmes situations ? Ou est-ce qu'un des 2 est obligatoire dans certaines situations.

2. J'ai l'impression que le tag <index> (utilisé pour les collections) est remplacé dans Hibernate 3 par les tags list-index (pour les listes) et map-key (pour les maps) plus parlants. Est-ce que je me trompe ?

De même, est-ce que index-many-to-many est remplacé par map-key-many-to-many ?

J'ai commencé à lire le livre en français Hibernate 3 (livre intéressant au demeurant) où sont utilisés les tags index et index-many-to-many dans les situations où le chapitre 7 du manuel de référence de Hibernate 3 utilise map-key et map-key-many-to-many.

3. Une question plus théorique : est-ce qu'il existe de la documentation pour savoir ce que fait une session au moment d'un commit. En particulier, j'aimerais savoir comment elle sait quels objets doivent être modifiés ou créés dans la base de données. Quelles structures/procédés/patterns utilise-t-elle pour cela ? Est-ce qu'elle parcourt tous les objets de la session pour savoir ce qu'elle doit faire (problèmes de performances ?) ? Je voudrais éviter d'avoir à lire le code de Hibernate mais avoir tout de même assez de détails sur les processus mis en jeu.

4. Pas d'index dans le manuel de référence. Ca manque vraiment. Une raison à ça ?

Merci d'avance pour vos réponses.

Richard


Top
 Profile  
 
 Post subject: Re: Questions générales
PostPosted: Mon Aug 29, 2005 4:58 am 
Hibernate Team
Hibernate Team

Joined: Sun Sep 14, 2003 3:54 am
Posts: 7256
Location: Paris, France
ricg wrote:
1. Quelle est la différence entre <many-to-one> avec l'attribut unique et one-to-one> avec l'attribut property-ref ? Est-ce qu'on peut les utiliser tous les 2 dans les mêmes situations ? Ou est-ce qu'un des 2 est obligatoire dans certaines situations.

La différence est l'endroit où la clé etrangère est placée. Many to one => dans la table de l'objet en cours. one-to-one property-ref => dans la table de l'objet associé.

ricg wrote:
2. J'ai l'impression que le tag <index> (utilisé pour les collections) est remplacé dans Hibernate 3 par les tags list-index (pour les listes) et map-key (pour les maps) plus parlants. Est-ce que je me trompe ?

Non, c'est backward compatible cependant.

Quote:
De même, est-ce que index-many-to-many est remplacé par map-key-many-to-many ?

Oui

Quote:
J'ai commencé à lire le livre en français Hibernate 3 (livre intéressant au demeurant) où sont utilisés les tags index et index-many-to-many dans les situations où le chapitre 7 du manuel de référence de Hibernate 3 utilise map-key et map-key-many-to-many.

J'imagine que ça sera corrigé pour la seconde édition :-) Encore une fois, c'est backward compatible.

Quote:
3. Une question plus théorique : est-ce qu'il existe de la documentation pour savoir ce que fait une session au moment d'un commit. En particulier, j'aimerais savoir comment elle sait quels objets doivent être modifiés ou créés dans la base de données. Quelles structures/procédés/patterns utilise-t-elle pour cela ? Est-ce qu'elle parcourt tous les objets de la session pour savoir ce qu'elle doit faire (problèmes de performances ?) ? Je voudrais éviter d'avoir à lire le code de Hibernate mais avoir tout de même assez de détails sur les processus mis en jeu.

Il faut que tu lises le code pour tous les détails. au flush() et non au commit(), Hibernate compare son snapshot avec les objets à synchroniser.
Non il n'y a pas de problème de performance. N'oublie pas que tu accèdes à une base de données distante avec du temps réseau etc etc.
L'autre technique qu'utilisent certains concurrents est d'utiliser le bytecode enhancement pour détecter les changements de l'objet. Cette technique à plusieurs limitations importantes et n'apporte pas de gain significatif. De plus si tu enhances les classes hibernate, un type similaire d'optimisation est mis en place pour court-circuiter la comparaison dans certains cas (je n'ai jamais vu de mes yeux un quelconque gain).

Quote:
4. Pas d'index dans le manuel de référence. Ca manque vraiment. Une raison à ça ?

Si tu nous mets en place un index docbook et que tu taggues les mots significatifs, c'est avec plaisir :-)
Je parcours personnellement la doc en html et CTRL+F est un index bien plus rapide.[/quote]

_________________
Emmanuel


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 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.