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 :

[criteria-hibernate] question sur criteria


Sujet :

Hibernate Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 160
    Points : 75
    Points
    75
    Par défaut [criteria-hibernate] question sur criteria
    salut tout le monde

    en lisant la doc sur criteria j'ai trouvé que des examples de requete qui return de List , je me demande est ce que criteria n'accepte pas les Set , j'ai essayé une petite manip mais mnt ça marche pas encore il se peut que j'ai fait une erreur , mais bon l'essentiel c'est si qlq'un a deja utilisé criteria avec les Set qu'il me fait part de son experience.

    merci

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 160
    Points : 75
    Points
    75
    Par défaut
    j'espere que je me suis bien exprimé, je sais que des fois j'arrive pas à faire passer le message mais bon.

    pour etre plus , est ce qu'on peut mettre le contenu d'une requete criteria dans un Set .

    on peut le faire dans une List et les deux sont des collections . est ce possible!!!!!!!!!!

  3. #3
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    Perso j'utilise les Set pour mon appli (les HashSet pour etre précis) et la fonction createCriteria fonctionne parfaitement pour retourner une liste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    HashSet set =  new HashSet();
    set.addAll(session.createCriteria(MaClasse.class).list());
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HashSet set = new HashSet(session.createCriteria(MaClasse.class).list());
    Ces deux possibilités te retournant la liste des objets de type MaClasse présents en base

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 160
    Points : 75
    Points
    75
    Par défaut
    ben quoi dire de plus à part merci, je ne sais pas ou je peux trouver toutes les fonctions de criteria , je parle de prototype , je veux savoir les fonctions qui existent ainsi que leurs signatures comme je pose pas trop question, parce que mon probleme n'est resolu qu'à moitié là.

  5. #5
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    Voici encore et toujours le même lien que je ne cesserai d'adresser a tous :
    DOC HTML HIBERNATE, Section Criteria

    La dedans, tu as toutes les explications suffisantes. Si tu en veux plus quant aux méthodes et leurs signatures, il existe l'API d'Hibernate pour répondre à tes questions (disponible aussi sur le site !!! )

    PS: J'utilise Eclipse et la completion de code me suffit plutot que l'API ... ca peut aussi t'etre utile donc

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 160
    Points : 75
    Points
    75
    Par défaut
    moi aussi c'est ma reference cett doc , pareil moi aussi j'utilise eclipse, le bleme de mon histoire c'est que je veux faire une comparaison d'un attribut d'un objet avec un argument .

    si tu veux c'est à peu pres comme cela.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class ActivityDto  implements Serializable {
    ...
        String              keyActivity;
        String              lbActivity;
        ActivityDto      keyParent;
        long                nuLevel;
        long                seqVersion;    
        Set <ActivityDto>   activities = new HashSet <ActivityDto>();

    le keyParent c'est aussi une activity , qui contient l'objet parent.

    maintenant je veux faire une fonction qui chercher les objets (keyParent) qui ont comme clé keyactivity , plus claire
    je veux un truc comme ça
    keyParent.keyActivity=keyActivity
    mnt quoi mettre dans la partie ??????? au dessous c'est pour cela que j'ai demandé une doc.
    parce que le bouquin y a pas grand chose et le site pareil (concernant ce que je veux faire )
    j'ai pensé à ---> getkeyParent().keyActivity mais non ça ne merchera pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        public Set<ActivityDto> fillALLchild(String key) {
     
            Set<ActivityDto> dtos = new HashSet<ActivityDto>();
            dtos.addAll(session.createCriteria(ActivityDto.class)
                         .add(Restrictions.eq("??????", key))
                         .list());
            return dtos;
        }


    le but si tu veux c'est de remplir
    Set <ActivityDto> activities = new HashSet <ActivityDto>();

  7. #7
    Membre actif
    Inscrit en
    Mai 2005
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 217
    Points : 220
    Points
    220
    Par défaut
    Citation Envoyé par BizuR
    Perso j'utilise les Set pour mon appli (les HashSet pour etre précis) et la fonction createCriteria fonctionne parfaitement pour retourner une liste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    HashSet set =  new HashSet();
    set.addAll(session.createCriteria(MaClasse.class).list());
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HashSet set = new HashSet(session.createCriteria(MaClasse.class).list());
    Ces deux possibilités te retournant la liste des objets de type MaClasse présents en base
    Rho lala franckkkkkkkkkk !!!

    Les bonnes pratiques !!!
    utilises les interfaces -> Set bidul = new HashSet();

  8. #8
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    Tourne toi vers les critères par l'exemple pour ton problème... je n'ai jamais testé mais d'après la lecture de la doc, on pourrait peut etre reussir a faire cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Activity actParent;
    //... tu recupere l'activité avec la bonne clé keyActivity dans actParent
    Activity act = new Activity();
    act.setParent(actParent);
    List liste = session.createCriteria(Activity.class)
                               .add(Exemple.create(act)
                                  .createCriteria(Activity.class)
                                     .add(Example(act.getParent())
                                        .list();

  9. #9
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    Citation Envoyé par _beber85
    Rho lala franckkkkkkkkkk !!!
    Les bonnes pratiques !!!
    utilises les interfaces -> Set bidul = new HashSet();
    Tete d'oeuf ! Je fais ca a la main ... jvais pas non plus me taper les bonnes pratiques a la volée !!!

    En plus, ca sert reellement a rien de le faire ici puisque l'objet sera renvoyé par la fonction dansla foulée... c'est plutot dans la signature que c'est adapté... et ma signature, elle renvoie un objet de type Collection ... alors sur ce, jte zut !

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 160
    Points : 75
    Points
    75
    Par défaut
    je vais m'y mettre sur les criteres pas exemple et puis je vous dit qu'est ce qui se passe.

    merci tout de meme

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 160
    Points : 75
    Points
    75
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
     ActivityDto activity = new ActivityDto();
            ActivityDto activityParent = new ActivityDto();
     
            activity.setKeyActivity(key);
            activityParent.setKeyParent(activity);
     
            Example example = Example.create(activityParent);
            example.excludeProperty("keyActivity");
            example.excludeProperty("lbActivity");
            example.excludeProperty("nuLevel");
            example.excludeProperty("seqVersion");
     
     
            Set<ActivityDto> dtos = new HashSet<ActivityDto>();
            dtos.addAll(session.createCriteria(ActivityDto.class)
                                .add(example)
                                .list());
    il me rend tous les enregistrements de la table ( erreur )
    je veux vous tenir en courant , mais je bosse dessus

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 160
    Points : 75
    Points
    75
    Par défaut
    vous n'arrivez pas à voir où se situe le probleme.
    j'avais trois enregistrement dans fichier de test quand j'ai enlevé ce bout de code , il a marché mais j'ai trouvé ça bizarre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            example.excludeProperty("keyActivity");
            example.excludeProperty("lbActivity");
            example.excludeProperty("nuLevel");
            example.excludeProperty("seqVersion");
    alors j'ai ajouté un autre enregistrement question de verifier, et là encore il oublie de compter un enregistrement ----> deduction il ya une erreur.

    j'aurai bien fait de ne pas verifier .

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 160
    Points : 75
    Points
    75
    Par défaut
    apparamment tout le monde a pris le pont du boulot et du forum, mais bon

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 160
    Points : 75
    Points
    75
    Par défaut
    example.excludeProperty("keyActivity");
    example.excludeProperty("lbActivity");
    example.excludeProperty("nuLevel");
    example.excludeProperty("seqVersion");
    apparemment il y a que " nuLevel " qui joue un role dans le changement de resultat.

    quand je laisse que ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            example.excludeProperty("nuLevel");
    il trouve quatre enregistrements ( donc tous les enregistrements de ma table)

    quand je l'enleve il ne trouve plus rien et me renvoie 0.

    c'est un peut bizarre puisque c'est un champ comme d'autre.

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/06/2013, 19h29
  2. [Hibernate] Questions sur les fonctionnalités d'Hibernate
    Par KneXtasY dans le forum Hibernate
    Réponses: 1
    Dernier message: 31/05/2007, 17h41
  3. [ Hibernate ] Avantages des Criteria ?
    Par cicolas dans le forum Hibernate
    Réponses: 5
    Dernier message: 26/06/2006, 16h07
  4. Questions sur Hibernate
    Par errant dans le forum Hibernate
    Réponses: 3
    Dernier message: 27/03/2006, 14h18
  5. [Hibernate]Question sur Hibernate
    Par elhani dans le forum Hibernate
    Réponses: 2
    Dernier message: 30/12/2005, 15h39

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