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 :

One-to-many : charger une partie de la liste


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 One-to-many : charger une partie de la liste
    Bonjour,

    J'ai une table compagnie et une table client avec une relation one-to-many.

    J'ai tout bien mappé, je charge la liste de clients avec fetch="join" en mode lazy par défaut, cad que la liste n'est chargée que quand je fais getList()

    L'idée, c'est que je voudrais charger seulement les clients français, par exemple.

    Est ce qu'il y a une manière élégante propre à hibernate ou il faut que je retourne a mes requetes sql ? Ou pire, faut il que je charge la liste complète des clients, et que je trie ensuite pour ne récuperer que les français ?

    S'il existe deja une aide sur ce sujet, n'hésitez pas à me renvoyer dessus.

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

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Points : 1 710
    Points
    1 710
    Par défaut
    Salut,
    L'idée, c'est que je voudrais charger seulement les clients français, par exemple.
    Il y a plusieurs solutions cela dépend de tes besoins. Tu peux par exemple créer des classes différentes pour tes clients et faire de l'héritage pour que ClientFrançais hérite de Client.
    Voici un exemple dans la doc d'Hibernate http://www.hibernate.org/hib_docs/reference/fr/html/inheritance.html

    Tu peux aussi faire des requêtes avec Hibernate (voir dans la doc les requêtes HQL)

    Apres cela dépend de la façon dont tu différencie la nationalités de tes clients.

    ++

  3. #3
    Membre confirmé Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Points : 576
    Points
    576
    Par défaut
    Tu peux aussi te tourner vers l'API Criteria.
    http://www.hibernate.org/hib_docs/v3.../Criteria.html

    Elle permet de faire des requetes complexe sans taper un bout de sql

  4. #4
    Membre éprouvé Avatar de Gardyen
    Homme Profil pro
    Bio informaticien
    Inscrit en
    Août 2005
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bio informaticien

    Informations forums :
    Inscription : Août 2005
    Messages : 637
    Points : 1 050
    Points
    1 050
    Par défaut
    tu as une option "where" quand tu déclares une collection, te permettant d'ajouter une condition sql quand hibernate accède à cette collection

    cf doc officielle

    tu peux par exemple mapper une deuxième fois cette association, avec les attributs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert=false update=false where="pays = 'FRANCE'"
    pour que cette collection ne soit pas prise en compte, et tu gardes l'association complète pour les opérations

    à toi de voir si ça te convient ou pas !
    Nous les geeks, c'est pas qu'on a une case en moins, c'est juste qu'on compte à partir de zéro.
    Plus les choses changent, plus elles restent les mêmes

  5. #5
    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
    La clause where dans un deuxieme mappage du set, c'est exactement ce qu'il me fallait.

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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. charger une partie d'une page
    Par ulysse031 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/05/2011, 15h43
  2. one-to-many. remplir une set
    Par rimy2mi dans le forum Hibernate
    Réponses: 0
    Dernier message: 18/03/2009, 12h40
  3. Problème de delete sur one-to-many avec une cascade
    Par Theoden dans le forum Hibernate
    Réponses: 2
    Dernier message: 02/01/2009, 17h43
  4. Charger une partie d'une matrice creuse
    Par ElDjus dans le forum MATLAB
    Réponses: 1
    Dernier message: 24/12/2007, 17h29
  5. Charger une partie des données
    Par yanis97 dans le forum Hibernate
    Réponses: 4
    Dernier message: 11/11/2006, 18h48

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