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

JPA Java Discussion :

Clause "ORDER BY" pour une @NamedQuery "Objet.FindAll"?


Sujet :

JPA Java

  1. #1
    Traductrice
    Avatar de Mishulyna
    Femme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 504
    Points : 7 843
    Points
    7 843
    Par défaut Clause "ORDER BY" pour une @NamedQuery "Objet.FindAll"?
    Bonsoir,

    Est-ce possible d'ajouter une clause ORDER BY à une
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    @NamedQuery(name = "Objet.findAll", query = "SELECT o FROM Objet o")
    ?

    Les listes d'objets retournées par les @NamedQuery sont affichées dans des ComboBox mais elles sont ordonnées par l'Id et pas par le "nom" des objets et je pense qu'un ordre alphabétique est préférable.

    Dans les contrôleurs j'ai des méthodes qui me remplissent les combos
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public SelectItem[] getItemsAvailableSelectOne() {
            return JsfUtil.getSelectItems(ejbFacade.findAll(), false);
        }
    et ce ne serait pas la fin du monde d'aller dans les 46 Facades de mon projet et d'écrire des requêtes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public List<Objet> findAllObjetOrderedByName() {
            String jpql = "SELECT o FROM Objet o ORDER BY o.nom ASC";
            return em.createQuery(jpql).getResultList();
        }
    pour les utiliser par la suite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    public SelectItem[] getItemsAvailableSelectOne() {
            return JsfUtil.getSelectItems(ejbFacade.findAllObjetOrderedByName(), false);
    mais je voudrais éviter ça si possible.

    Merci!

  2. #2
    Traductrice
    Avatar de Mishulyna
    Femme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 504
    Points : 7 843
    Points
    7 843
    Par défaut
    Bonsoir,

    J'ai fini par trouver une petite astuce. En ajoutant une méthode à la classe AbstractFacade.java ça fonctionne pour toutes les entityClass qui possèdent un attribut "nom" (une bonne trentaine dans mon cas):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        public List<T> findAllByNameAsc() {
            javax.persistence.criteria.CriteriaQuery cq = getEntityManager().getCriteriaBuilder().createQuery();
            Root<T> root = cq.from(entityClass);
            cq.select(root);
            cq.orderBy(getEntityManager().getCriteriaBuilder().asc(root.get("nom")));
            return getEntityManager().createQuery(cq).getResultList();
        }

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

Discussions similaires

  1. Order By Lambda sur une arborescence d'objet
    Par skacofonix dans le forum C#
    Réponses: 8
    Dernier message: 20/03/2013, 09h19
  2. Auto-complétion pour une liste d'objet
    Par caparenlive59 dans le forum Android
    Réponses: 9
    Dernier message: 28/04/2011, 10h52
  3. Quel sgbd pour une BD Orientée Objet ?
    Par lolymeupy dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 13/04/2008, 21h51
  4. [POO] Quelle archi pour une webapp PHP objet ?
    Par yann2 dans le forum Langage
    Réponses: 6
    Dernier message: 09/06/2006, 11h10
  5. Réponses: 8
    Dernier message: 22/05/2006, 09h25

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