IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Hibernate Java Discussion :

[Débutant] Optimisations, cache, etc..


Sujet :

Hibernate Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Points : 631
    Points
    631
    Par défaut [Débutant] Optimisations, cache, etc..
    Bonjour,

    Je fais un site sur lequel un utilisateur, appartenant à un groupe, peut se connecter pour voir des informations propres à son groupe.

    Donc j'ai une table user, une table group, et une table infos.

    J'ai posé des relations many-to-one et one-to-many pour lier infos et group, et user et group.

    Quand l'user se loggue sur le site, je charge depuis la base l'objet user, puis dans l'user, l'objet group (many-to-one fetch="join" lazy="false") et dans group, la liste des objets infos (one-to-many) est loadé en mode lazy, cad que je ne remplirais la liste qu'en accédant à getList().

    J'ai toutefois plusieurs questions :

    Actuellement, la fonction signIn(login, pass) qui renvoie un user ouvre une nouvelle session, une nouvelle transaction, récupere le user et fait les vérifications d'usage. Ensuite on commit et on renvoie l'user.

    Je ne close pas la session dans cette fonction, sinon je ne pourrais pas avoir mes listes d'infos (lazy).

    Plus tard, j'appelle la fonction getList() qui ouvre une nouvelle session, une nouvelle transaction, appelle user.getGroup().getList(), commit, et renvoie la liste.

    * Pour ces deux fonctions je fait openSession. Est ce qu'il serait possible d'ouvrir une fois une session, et apres de faire getCurrentSession(), sachant que plusieurs user peuvent se connecter au site en même temps ? Et si oui, comment faire pour le currentSession pointe bien sur la bonne session ?

    * A quel moment je close ma session ?

    * Quand un utilisateur se déconnecte, j'ai envie de vider tant la mémoire que le cache de tous ces objets loadés. Comment je peux faire ça ? Faire un close de la currentSession et vider l'objet qui est maintenant détaché ? Autre chose ?

    * Aucune de ces informations ne peuvent être modifiées. J'ai ajouté une clause mutable à chaque mappage de classe, et j'ai essayé d'ajouter le cache read-only, mais avec les histoires de deprecated et les 1000 .jar a rajouter dans tous les sens, j'ai senti qu'il y avait une feinte.

    J'espère que j'ai été assez clair, et que je passe pas trop pour un manchot.

    Merci d'avance.
    Venez partager vos expériences au sein d'un projet sur slicesofit, agile & amélioration continue

  2. #2
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Points : 631
    Points
    631
    Par défaut
    Bon c'est facile la troisième fois que je passe pour un neuneu sur ce forum en deux jours.

    J'ai fait n'importe quoi avec mes sessions.

    J'ouvre une session pour loader l'user, et je ne ferme pas cette session.
    Ensuite quand j'appelle la liste, j'ouvre une deuxieme session, ce qui ne sert à rien, et je ne la ferme pas non plus, et comme je n'ai pas fermé la première, le lazy loading se passe très bien.

    Donc, la solution simple, ça serait d' ouvrir ma session dans une fonction signIn, et de remplir mes listes au fil des appels de getter, puis dans le signOut, faire les flush() clear() close() et compagnie.

    Donc je vais regarder du coté des sessions longues.

    Par contre pour les histoires de cache, je sais toujous pas
    Venez partager vos expériences au sein d'un projet sur slicesofit, agile & amélioration continue

Discussions similaires

  1. [SQL] Code de débutant à optimiser
    Par Chop_chop dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/09/2007, 11h12
  2. Débutant : optimisation BIND ?
    Par henzer dans le forum Administration système
    Réponses: 1
    Dernier message: 10/07/2007, 09h48
  3. Réponses: 1
    Dernier message: 24/05/2007, 14h46
  4. [D6] Internet Explorer - Historique, Cache etc..
    Par bibi26 dans le forum Web & réseau
    Réponses: 4
    Dernier message: 29/11/2006, 21h39
  5. [Débutant] Optimisation d'un programme
    Par velociraptor5679 dans le forum C++
    Réponses: 20
    Dernier message: 19/06/2006, 21h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo