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 :

POJO leger en retour d'un Select


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 3
    Par défaut POJO leger en retour d'un Select
    Bonjour,

    Je travaille sur une application web utilisant JSF + Spring + JPA. Sur certains de mes formulaires web, j'ai besoin d'afficher une liste déroulante avec des informations provenant de ma couche DAO. Avec les tags de JSF, il suffit de donner une liste en paramètre et il le fait tout seul . Néanmoins, une petite chose me gène un peu (voire même beaucoup), j'ai des entités qui sont plutôt pas mal chargées. Du coup quand je demande une liste (de Personne par exemple) j'ai une liste contenant toutes les personnes de la base . Pourtant je n'ai seulement besoin que de l'id et du nom pour construire ma liste déroulante.

    J'ai donc fait une methode qui fait un "SELECT p.id, p.nom FROM Personne p" mais cela me rend un objet de type List<Object[]> donc impossible à manipuler si on n'a pas nous même participer à l'écriture des DAO (car on ne connais pas la structure du tableau).

    J'aurai aimé donc savoir si c'est possible d'avoir une List<Personne> en retour mais ne contenant que les attributs id et name.

    Merci

  2. #2
    Membre averti
    Profil pro
    chef
    Inscrit en
    Septembre 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : chef

    Informations forums :
    Inscription : Septembre 2005
    Messages : 13
    Par défaut
    Bonjour,

    Effectivement, tu peux. C'est même conseillé. Mais il faut que tu le fasses "à la main" en définissant des POJO "légers", en faisant des select plus sélectifs (si je puis dire), et en instanciant toi même ces POJOs à partir des Object[] qui te sont renvoyés par tes select.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 3
    Par défaut
    Citation Envoyé par rdeman Voir le message
    Bonjour,

    Effectivement, tu peux. C'est même conseillé. Mais il faut que tu le fasses "à la main" en définissant des POJO "légers", en faisant des select plus sélectifs (si je puis dire), et en instanciant toi même ces POJOs à partir des Object[] qui te sont renvoyés par tes select.
    Merci,
    Je vais essayer de faire comme tu dis. Mais c'est quand même dommage que JPA ne nous le fasse pas automatiquement. Du coup on est obligé de refaire un parcours de liste + construction des objets. Résultat, un sérieux gaspillage de temps et de puissance machine

  4. #4
    Membre averti
    Profil pro
    chef
    Inscrit en
    Septembre 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : chef

    Informations forums :
    Inscription : Septembre 2005
    Messages : 13
    Par défaut
    JPA est une API générique. Comment savoir quelle classe est une représentation légère d'une entité ? Tu peux aussi avoir plusieurs POJO plus ou moins légers pour une même entité.

    Tu peux le faire de manière plus générique en utilisant des Map, mais c'est nettement moins élégant que des POJOs.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 3
    Par défaut
    J'ai finalement trouver une solution.
    Pour ceux à qui ça pourrait intéresser, j'ai appris que l'on pouvait faire des select et instancier directement un objet à l'interieur du select.

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

Discussions similaires

  1. [Tableaux] Retour d'un SELECT effectué dans une classe
    Par dubitoph dans le forum Langage
    Réponses: 2
    Dernier message: 05/10/2007, 18h08
  2. [MySQL] valeur de retour requete mysql_query(select..
    Par crunk dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 19/11/2006, 16h38
  3. fonction, récupérer retour d'un SELECT
    Par Bindy dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 02/08/2006, 17h28
  4. [VB.NET] [SQL] Retour d'un SELECT pour un IF/ELSE
    Par nys_00 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 17/03/2005, 13h50

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