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

JSF Java Discussion :

Affichage JFeeChart JSF JPA


Sujet :

JSF Java

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 110
    Par défaut Affichage JFeeChart JSF JPA
    Salut,


    je cherche a afficher dans un graphe le résultat dune requête avec jfreechart ca marche avec jdbc mais je le veux avec jpa

    la requête sur le manager

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
             public List<Produit>  getListeProduitsparcategorie()
                     {
     
     
             Query qry = em.createQuery(" SELECT count(p.numeroCategorie.libelle) as nombre,p.numeroCategorie.libelle as categorie from Produit p group by p.numeroCategorie.numeroCategorie");
             return qry.getResultList();
                     }
    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
     
     
     
    	private PieDataset createDataset() 
            {
     
    		DefaultPieDataset dataset = new DefaultPieDataset();
     
           dataset= (DefaultPieDataset) produitManager.getListeProduitsparcategorie();
     
       // je sais comment prendre les valeurs comme ce que jai fait avec jdbc 
     
            // dataset.setValue(r.getString(2),r.getInt(1));
     
     	}





    lexemple avec jdbc qui marche


    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
     
    	private PieDataset createDataset() 
            {
     
    		DefaultPieDataset dataset = new DefaultPieDataset();
     
     
     
     
                 try {
    		Class.forName("com.mysql.jdbc.Driver");
     
    		Connection c=DriverManager.getConnection("jdbc:mysql://localhost:3306/ecommerceerramdani","root","root");
     
    		Statement s=c.createStatement();
    		ResultSet r=s.executeQuery("   select count(c.libelle) as nombre ,c.libelle  from produit p ,categorie c where p.numeroCategorie=c.numeroCategorie  group by p.numeroCategorie");
     
     
     
     
     
    		while(r.next()) {
    			System.out.print(r.getString(1)+"  ");
    			System.out.print(r.getString(2)+"  ");
     
     
     
     
             dataset.setValue(r.getString(2),r.getInt(1));
     
     
          c.close();
     
     
     	}
     
     
     
     
    	}
    	catch(ClassNotFoundException e) {
    		e.printStackTrace();
    	}
    	catch(SQLException e) {
    		e.printStackTrace();
    	}
                return dataset;
     
     
     
     
           	}

  2. #2
    Membre averti
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 45
    Par défaut
    bonsoir;
    j'ai le même problème, stp s'il vous trouvez la solution aidez moi

  3. #3
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 251
    Par défaut
    Déjà ta méthode getListeProduitsparcategorie ne renvoie pas le bon type d'objet
    Tu essaies de renvoyer une liste de Produits alors que ton select renvoie un entier et une chaîne de caractères.

    Tu as deux solutions, soit définir un ResultSetMapping au niveau d'une entité et de l'utiliser dans ta requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    @SqlResultSetMapping(name="myResult",
     @Columns {
           @ColumnResult(name = "nombre")
           @ColumnResult(name = "categorie")
    }
     
     
    Query qry = em.createQuery(" SELECT count(p.numeroCategorie.libelle) as nombre,p.numeroCategorie.libelle as categorie from Produit p group by p.numeroCategorie.numeroCategorie","myResult");
    Soit d'utiliser directement les résultats dans ta requête ce qui est moins propre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    List<Object[]> list = qry.getResultList();
    for (Object resultLine[] : list) {
       int nombre = ((BigDecimal) resultLine[0]).intValue();
       String categorie = (String) resultLine[1];
    }

  4. #4
    Membre averti
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 45
    Par défaut
    moi utilise JPA2/JSF/EJB, j'essaye d'utiliser la requête suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
        @Override
         public List<Reservation> GrpheEtablissement() throws Exception{
            @SqlResultSetMapping(name="myResult",
                    @Columns={
                                @ColumnResult(name = "nbre")
                                @ColumnResult(name = "nom")
                    }
            )
     
             Query q=em.createQuery("select count(c.etablissement.nomEtablissement) AS nbre,c.etablissement.nomEtablissement AS nom from Reservation c GROUP BY c.etablissement.nomEtablissement","myResult");
             return q.getResultList();
     
         }

    mais la syntaxe n'est pas valide, stv vérifier avec moi la syntaxe!
    et merci

  5. #5
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 251
    Par défaut
    un SqlResultSetMapping se définit dans une classe, pas directement dans une méthode:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    @Entity
    @SqlResultSetMapping(name="myResult",
                    @Columns={
                                @ColumnResult(name = "nbre")
                                @ColumnResult(name = "nom")
                    }
    )
    public class MyEntity implements Serializable {
     
    }

  6. #6
    Membre averti
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 45
    Par défaut
    stv; le problème pas résolu:

    voila requete pour recupere nbre et nom:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
       @Override
         public List<Reservation> GrpheEtablissement() throws Exception{
             Query q=em.createQuery("select count(c.etablissement.nomEtablissement) AS nbre,c.etablissement.nomEtablissement AS nom from Reservation c GROUP BY c.etablissement.nomEtablissement","myResult");
             return q.getResultList();
     
         }

    voila classe entite:


    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
     
    @Entity
    @Table(name = "reservation")
    @SqlResultSetMapping(name="myResult",@Column={
                                                    @ColumnResult(name="nbre")
                                                    @ColumnResult(name = "nom")
    })
     
    @NamedQueries({
        @NamedQuery(name = "Reservation.findAll", query = "SELECT r FROM Reservation r"),
        @NamedQuery(name = "Reservation.findByIdResv", query = "SELECT r FROM Reservation r WHERE r.idResv = :idResv"),
        @NamedQuery(name = "Reservation.findByDateResv", query = "SELECT r FROM Reservation r WHERE r.dateResv = :dateResv"),
        @NamedQuery(name = "Reservation.findByDestination", query = "SELECT r FROM Reservation r WHERE r.destination = :destination"),
        @NamedQuery(name = "Reservation.findByObjetResv", query = "SELECT r FROM Reservation r WHERE r.objetResv = :objetResv"),
        @NamedQuery(name = "Reservation.findByDateDebut", query = "SELECT r FROM Reservation r WHERE r.dateDebut = :dateDebut"),
        @NamedQuery(name = "Reservation.findByDateFin", query = "SELECT r FROM Reservation r WHERE r.dateFin = :dateFin"),
        @NamedQuery(name = "Reservation.findByConfirmation", query = "SELECT r FROM Reservation r WHERE r.confirmation = :confirmation")})
     
        public class Reservation implements Serializable {
     
     
     
    }

  7. #7
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 251
    Par défaut
    Encore une fois ta requête ne peut pas renvoyer une liste d'entités Reservation car la requête renvoie un entier et une chaîne de caractères.
    Ta méthode dervais renvoyer une liste d'objets composite type DTO (Date Transfert Object).
    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
     
     
    public List<MyDTO> getGrapheEtablissement()
    Query q=em.createQuery("...","myResult");
    List<Object[]> list = q.getResultList();
    List<MyDTO> dtoList = new ArrayList(dtoList.size());
    for (Object resultLine[] : list) {
       dtoList.add(new MyDTO(((BigDecimal) resultLine[0]).intValue(),(String) resultLine[1]));
    }
     
    return  dtoList;
    }
     
    public class MyDTO(){
       private final int nombre;
       private final String categorie;
     
       public MyDTO(final int aNb, final String aCategorie){
          nombre = aNb;
          categorie = aCategorie;
       }
     
      public int getNombre(){
         return nombre;
      }
     
      public String getCategorie(){
        return categorie;
      }
     
    }

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 110
    Par défaut
    Problém résolu merci d'en tenir en compte

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 03/05/2017, 12h09
  2. jsf & jpa
    Par karima_info1 dans le forum JSF
    Réponses: 1
    Dernier message: 14/03/2009, 21h38
  3. affichage liste JSF
    Par psycho_xn dans le forum JSF
    Réponses: 6
    Dernier message: 18/08/2008, 02h18
  4. eclipse Europa - jboss Seam - JSF - JPA
    Par twister110 dans le forum Seam
    Réponses: 3
    Dernier message: 16/07/2008, 10h59

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