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

NHibernate Discussion :

[ASP.NET C# 2.0] Nhibernate et ICriteria


Sujet :

NHibernate

  1. #1
    mow
    mow est déconnecté
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 210
    Points : 166
    Points
    166
    Par défaut [ASP.NET C# 2.0] Nhibernate et ICriteria
    Bonjour,

    Est-il possible de spécifier au niveau de l'instance ICriteria de ne récupérer que les éléments distincts ?
    Ou encore de faire l'equivalent de select distinct ??

    Merci d'avance,
    Mow

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut
    Exactement comme un DISTINCT en SQL, pas faisable actuellement semble-t-il.
    .SetResultTransformer(NHibernate.CriteriaUtil.DistinctRootEntity) s'en approche, mais c'est pas tout à fait la même chose (le filtrage ne se fait pas dans la base)

    Sinon il faut passer par du HQL.
    Be wary of strong drink.
    It can make you shoot at tax collectors, and miss.

  3. #3
    mow
    mow est déconnecté
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 210
    Points : 166
    Points
    166
    Par défaut
    Merci pour la réponse.

    Je me permets de continuer avec une autre question (pour une fois que je tombe sur quelqu'un qui connait/utilise les ICriteria).
    Apparemment sur les ICriterion tels que AddOrder, on ne peut ordonner que des proprietes de notre entity. Me le confirmes-tu ?

    Sinon, pour info j'utilise du HQL dans d'autres cas.

    Ca m'embête pas que je puisse pas utiliser dans tous les cas les requetes du genre ICriteria je trouvais ca trop intéressant... Pour l'ensemble des formulaires de recherches de l'application je passais par un même template ; les paramètres étaient l'entity, jointure et filtre.

    Je suis intéressé aussi par des tutoriaux sur le mode d'interrogation sur NHIbernate (autre que ceux du site bien sûr !!

    D'avance et encore merci,
    Mow

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut
    Citation Envoyé par mow
    Je me permets de continuer avec une autre question (pour une fois que je tombe sur quelqu'un qui connait/utilise les ICriteria).
    Ni l'un ni l'autre :)
    J'ai survolé, mais je tourne essentiellement au HQL (plus facile pour les tests :)

    Le coup du DistinctRootEntity ça vient de http://forum.hibernate.org/ :)

    Citation Envoyé par mow
    Apparemment sur les ICriterion tels que AddOrder, on ne peut ordonner que des proprietes de notre entity. Me le confirmes-tu ?
    Confirmer non (pas trop creusé ça donc), mais ça semblerait logique. Sur quoi d'autre est-ce que tu voudrais pouvoir trier ? Toute la requête est faite à partir des propriétés des objets après tout.

    Citation Envoyé par mow
    Je suis intéressé aussi par des tutoriaux sur le mode d'interrogation sur NHIbernate (autre que ceux du site bien sûr !!
    À part http://www.hibernate.org/365.html je suis à sec :)
    Be wary of strong drink.
    It can make you shoot at tax collectors, and miss.

  5. #5
    mow
    mow est déconnecté
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 210
    Points : 166
    Points
    166
    Par défaut
    Merci pour tes réponses et tes liens...

    Confirmer non (pas trop creusé ça donc), mais ça semblerait logique. Sur quoi d'autre est-ce que tu voudrais pouvoir trier ? Toute la requête est faite à partir des propriétés des objets après tout.
    Oui, on ne peut trier que sur les propriétés des objets mais ils arrivent que ces propriétés représentent eux-même des objets et ces objets eux aussi ont des propriétés. Et ce sont ces propriétés que je désire atteindre.

    Merci,Mow

  6. #6
    Membre régulier Avatar de Pingva
    Profil pro
    Inscrit en
    Août 2004
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 190
    Points : 78
    Points
    78
    Par défaut
    Bonjour je me permets de poster ma question ici, car elle a aussi un rapport avec Nhibernate et ICriteria


    J'ai 2 tables :
    THEME (IDTHEME, LIBELLETHEME)
    OBJECTIF (IDOBJECTIF, LIBELLEOBJECTIF,IDTHEME)

    Dans la table OBJECTIF j'ai un IDTHEME (un objectif se rapporte toujours à un thème)

    Je veux créer une liste des objectifs, triés pas le libelle de leurs thèmes.
    J'aiirive a trier ma liste par le libellé de l'objectif. Mon mapping marche dans ce cas.

    Dans ma classe Objectif, j'ai des propriétés suivantes:
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    public class Objectif
        {
            private int _idObjectif;
            private string _libelleObjectif;
           private Theme _theme;
     
           public Objectif()
            {
     
            }
     
            public virtual int IdObjectif
            {
                get { return _idObjectif; }
                set { _idObjectif = value; }
            }
     
            public virtual string LibelleObjectif
            {
                get { return _libelleObjectif; }
                set { _libelleObjectif = value; }
            }
            public virtual Theme Theme
            {
                get { return _theme; }
                set { _theme = value; }
            }
            public virtual string LibTheme
            {
                get { return _theme.LibelleTheme; }
                set { _theme.LibelleTheme = value; }
            }
     
        }
    ça marche ==>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      ICriteria criteres = session.CreateCriteria(typeof(Objectif));
       criteres.AddOrder(Order.Asc("LibelleObjectif"));
    ça marche pas ==>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    criteres.AddOrder(Order.Asc("Theme.LibelleTheme"));
    criteres.AddOrder(Order.Asc("LibTheme"));

    si j'ecris ==>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    criteres.AddOrder(Order.Asc("Theme"));
    ca trie, mais par ll IDTHEME, mais moi je veux par libelleTheme

  7. #7
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut
    HS : vive linq

  8. #8
    Membre régulier Avatar de Pingva
    Profil pro
    Inscrit en
    Août 2004
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 190
    Points : 78
    Points
    78
    Par défaut
    bon, j'ai trouvé moi meme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     ICriteria criteres = session.CreateCriteria(typeof(Objectif));
     ICriteria critTheme = criteres.CreateCriteria("Theme");
     critTheme.AddOrder(Order.Asc("LibelleTheme"));

Discussions similaires

  1. Choisir PHP ou ASP.NET ?
    Par discogarden dans le forum Général Conception Web
    Réponses: 81
    Dernier message: 31/12/2009, 19h11
  2. comment integrer NHibernate à un projet ASP.Net?
    Par missgeek dans le forum NHibernate
    Réponses: 17
    Dernier message: 17/08/2009, 23h08
  3. [Nhibernate & ASP.NET] Utilisation des Users
    Par anthyme dans le forum NHibernate
    Réponses: 1
    Dernier message: 18/07/2007, 00h05
  4. Driver postgre pour asp.net
    Par vonbier dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 02/10/2003, 14h35

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