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 :

[NHibernate, C# etc] Clause group by sur un champ calculé


Sujet :

NHibernate

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 107
    Points : 63
    Points
    63
    Par défaut [NHibernate, C# etc] Clause group by sur un champ calculé
    Messieurs Dames, bonjour

    Excusez tout d'abord si je poste pas au bon endroit, mais j'ai pas vu d'emplacement dédié à NHibernate...

    Je suis actuellement confronté à un souci majeur (et je ne parle pas du doigt ) qui peux se résumer à :

    "Comment intégrer une clause GROUP BY sur un champ calculé dans un DAO géré par NHibernate tout en gardant une compatibilité avec toutes les BdD (sqlserver, oracle...), c'est-à-dire sans faire de SQL ?"


    Pour me faire comprendre (si c'est pas déjà le cas), un petit extrait de notre DAO :

    A la base, j'ai ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
            /// <summary>
            /// Retourne une liste de trucs
            /// </summary>
            /// <param name="properties">criteres de recherche</param>
            /// <returns>liste d'objets contenant les trucs</returns>
            public IList<object> getListeTrucs(IList<KeyValuePair<string, object>> properties) {
                ICriteria criteria = getCriteria(properties);
                criteria.SetProjection(Projections.ProjectionList()
                    .Add(Projections.Property("CodeTruc"))
                    .Add(Projections.Property("DateP"))
                return criteria.List<object>();
            }
    Sachant que la propriété DateP contient date et heure.
    Mais, comme je suis chiant, je veux faire un group by sur la date sans l'heure (ça fait moins d'enregistrements pour le dataset balancé à Crystal, derrière).
    Mon champ n'est donc plus le champ de la base, mais un cast ou un truc du genre. Notez que ça pourrait être une opération plus complexe, ça doit rien changer à la solution du problème.

    Si on ajoute un Projection.GroupProperty sur le cast de DateP, il gueule parce qu'il l'a pas dans ses group by, il a que DateP...

    Si quelqu'un a une solution, ça éviterait deux ou trois suicides dans la boite

    Merci bien et bonne journée-nuit-après midi-soirée (rayer les mentions inutiles) à vous.

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 107
    Points : 63
    Points
    63
    Par défaut
    Pour aujourd'hui, on va s'orienter vers une solution "batarde" qui nous plait pas : on ajoute un champ dans le DO qui récupère la partie entière de la date (Scale=0 dans les propriétés du champ) et on fera un GroupProperty dessus.

    Mais ça nous plait vraiment pas parce que c'est pas viable du tout, comme solution...

    Si quelqu'un en a une meilleure (et surtout plus maintenable...)

    Merci et bonne journée.

Discussions similaires

  1. [Toutes versions] Requêtes Group By sur 2 champs
    Par Stepsbysteps dans le forum Access
    Réponses: 2
    Dernier message: 28/10/2013, 11h20
  2. Clause Where sur un champ "calculé"
    Par papouuu dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 09/03/2011, 17h12
  3. GRoup by sur un champ datetime
    Par sadkat dans le forum Langage SQL
    Réponses: 2
    Dernier message: 16/02/2010, 17h55
  4. Tri sur un champs calcule à l'interieur d'un groupe
    Par abalone61 dans le forum BIRT
    Réponses: 2
    Dernier message: 07/01/2009, 14h33
  5. Clause group by sur oracle
    Par clement_911 dans le forum SQL
    Réponses: 3
    Dernier message: 06/04/2007, 13h24

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