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 :

Projection et tri


Sujet :

Hibernate Java

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 95
    Points : 67
    Points
    67
    Par défaut Projection et tri
    Bonjour,

    Je travaille sous Oracle 10g, et avec Hibernate.

    Voici la tête de ma table ppale PRODUIT (je vous fais cadeau des autres).
    PRODUIT_ID
    VERSION
    CODEPRODUIT
    COULEUR
    DIMENSIONMAX
    PRIX

    Ce que j'essaie de faire dans une projection, c'est de regrouper les produits sur certains critères.
    Une fois la projection effectuée, je souhaite trier le résultat de la lecture, puisque je vais devoir au vu des dimensions de la table effectuer une lecture par lots, et donc obtenir un résultat parfaitement trié pour ne pas risquer de passer à travers.


    public List<BeanProjectionProduit> makeListeBeanProjectionProduit(Criteres criteres, Integer wPremiereLigneALire, Integer tailleDuLot)
    {

    // Création d'un requête détachée pour la projection
    DetachedCriteria criteria = DetachedCriteria.forClass(Produit.class);

    // Création d'alias sur des associations

    criteria.createAlias("criteres", "crit");

    // traitement BeanProjectionProduit
    List<BeanProjectionProduit> listBeanProd = null;

    final ProjectionList uneProjectionSpe = Projections.projectionList();

    // Group by puis count et sum
    uneProjectionSpe.add(Projections.groupProperty("couleur"), "couleur").add(
    Projections.groupProperty("dimensionMax"), "dimensionMax")add(Projections.rowCount(),
    "nbProduits").add(Projections.sum("prix"), "prix");

    // Affectation de la projection à la requête
    criteria.setProjection(uneProjectionSpe).setResultTransformer(new PrefixedAliasToBeanResultTransformer(BeanProjectionProduit.class));

    // tris (non exhaustifs!)


    criteria.addOrder(Order.asc("id"));

    listBeanProd = getHibernateTemplate().findByCriteria(criteria, wPremiereLigneALire, tailleDuLot);

    return listBeanProd;
    }


    Je sors inexorablement avec une Erreur SQL : ORA-00979: N'est pas une expression GROUP BY
    00979. 00000 - "not a GROUP BY expression"


    Est-ce à dire que je ne peux pas trier sur l'id? Je pensais que le fait de trier n'influençait en rien sur la projection....

    Je vous remercie pour les précisions éventuelles que vous m'apporterez.

    Thomas

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 95
    Points : 67
    Points
    67
    Par défaut
    En fait c'est impossible....donc j'ai changé mon fusil d'épaule et ajouté des ordres order asc ensuite.

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

Discussions similaires

  1. Tri multi-threadé
    Par Tifauv' dans le forum C
    Réponses: 8
    Dernier message: 28/06/2007, 09h00
  2. tri de liste chainée
    Par RezzA dans le forum C
    Réponses: 7
    Dernier message: 26/01/2003, 20h25
  3. Tri par fusion d'un tableau
    Par Mailgifson dans le forum C
    Réponses: 5
    Dernier message: 12/12/2002, 14h53
  4. [VBA-E] [Excel] Tri automatique
    Par bovi dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/10/2002, 10h19
  5. [] Tri d'un tableau par ordre alphabétique
    Par cafeine dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 17/09/2002, 08h43

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