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 :

Jointure en JPA


Sujet :

JPA Java

  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 76
    Par défaut Jointure en JPA
    bonjour ,je suis débutante en jpa , dans mon requéte je veux créer une jointure entre 3 table catégorie,produit et image,bon je veux lorsque je choisi la catégorie il m'affiche la liste des produit intégré dans cette catégorie avec les images de ses produits.dans ma base de donnée j'ai une liaison entre ses 3 tables:

    la table Produit contient IDCategorie,ainsi que la table image contient IDProduit
    bon voila les classe sous format image.
    Images attachées Images attachées    

  2. #2
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 76
    Par défaut
    pouvez vous me rendre cette requete jdbc sous forme d'une requete jpa:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select id,nom,chemin from image i join produit p on(i.produit_id=p.id) join categorie c on (c.id=p.categorie_id);

  3. #3
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Citation Envoyé par tifawa Voir le message
    pouvez vous me rendre cette requete jdbc sous forme d'une requete jpa:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select id,nom,chemin from image i join produit p on(i.produit_id=p.id) join categorie c on (c.id=p.categorie_id);
    Bonjour, Peux tu nous montrer les classes entités correspondantes?

  4. #4
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 76
    Par défaut
    bonjour voici le diagramme de classe veuillez m'aidez svp???
    Images attachées Images attachées  

  5. #5
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Bonjour,
    Personnellement j'ai du mal à aider quand la personne n'a pas au minimum acquis les bases, as tu pris le temps de lire un tutoriel complet sur JPA? (sur les requêtes JPQL) ? Ca nous aide à mieux t'aider très honnêtement.Si ce n'est pas le cas je te filerai un lien pour bien démarrer

  6. #6
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 76
    Par défaut
    ok donne moi un lien d'un tutorial complet sur jpa,

    merci.

  7. #7
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Citation Envoyé par tifawa Voir le message
    ok donne moi un lien d'un tutorial complet sur jpa,

    merci.
    Ici

  8. #8
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 76
    Par défaut
    merci

  9. #9
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Reviens nous voir si tu bloques sur un point. Bonne lecture

  10. #10
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 76
    Par défaut
    bonjour , je suis bloké sur un point concérnant la requéte jpa,dans la page xhtml ila m'affiche l'emplacement du produit mais il ne gére pas la requete il ne récupére ni le nom du produit ni son n'image il ne prend pas en concéquant la catégorie du produit,voici mon code.

    class DaoProduit:

    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
     
    public List<Produit> findAll(){
    		Query query = em.createQuery("select p from Produit p");
    		return (List<Produit>) query.getResultList();
    	}
     
    	public List<Produit> findByIdimage(Long idCat){
     
    		try {
    			//Query query=em.createNativeQuery("select produit.nom,image.chemin from categorie,produit,image where categorie.id=produit.categorie_id and produit.id=image.produit_id");
    			Query query = em.createQuery("select p.nom,i.chemin,c.categorie FROM Produit as p join Image as i join Categorie as c WHERE categorie.id=produit.categorie.id and produit.id=image.produit.id : desc");
    			query.setParameter("desc", idCat);
    			return (List<Produit>)query.getSingleResult();
    		}catch(Exception e){
    			e.printStackTrace();
    			return null;
    		}
    	}
    class ProduitBean:

    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
     
    private Long idProd;
    	private List<Produit> tout_les_prod;
    	private Long idSos;
    	private Long idCat;
    	private Produit produit;
    	private Categorie categorie;
    	private Societe societe;
    	private Image image;
     
    @PostConstruct
    	public void init( ){
    		produit=new Produit();
    		tout_les_prod= new DaoProduit().findAll();
     
    	}
     
    	public String afficher() {
     
    		tout_les_prod=new DaoProduit().findByIdimage(idCat);
    		return "index.xhtml";
    	}
    class CategorieBean:

    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
     
    public void MenuModel(){
    		 model = new DefaultMenuModel();  
    		          Submenu submenu =null;
    		          submenu = new Submenu();
    		          submenu.setLabel("Categories");
    		          submenu.setStyle("width:185px;margin-bottom: 8px;font-size: 30px;text-align: center;font-style: italic;font-family: fantasy;");
    		        for(Categorie cat:toutes_les_cat){
     
    		           MenuItem item = new MenuItem();
    		           item.setValue(cat.getDescriptionCategorie());  
    		           item.setStyle("width:173px;color: white;margin-top: -9px;");
    		           item.setUrl(new ProduitBean().afficher());
    		           submenu.getChildren().add(item);
    		           model.addSubmenu(submenu);  
    		        }
     
    	}
    index.xhtml:

    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
     
    <p:menu model="#{categorieBean.model}" style="width:185px;margin-left: 3px"/>
     
     
    <p:dataGrid var="prod" value="#{produitBean.tout_les_prod}" columns="3"  
            rows="12" paginator="true"  >  
            <p:column>  
                <p:panel header="" style="text-align:center">  
                    <h:panelGrid columns="1" style="width:100%">  
         <p:graphicImage value="./images/#{image.chemin}.jpg"/>  
         <h:outputText value="#{prod.nom}" />
                    </h:panelGrid>  
                </p:panel>  
            </p:column>  
     
        </p:dataGrid>

  11. #11
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Bonjour, je m'excuse de reposer la question, peut on voir le code des classes entités Produit,Categorie,Image? Dans ton diagramme je ne vois pas le nom des rôles, du coup on ne peut t'aider dans les requêtes objets. mais à mon avis il faut y aller étape par étape, d'abord s'assurer que toutes les requêtes HQL font bien leur job avant de remonter au niveau du contrôleur.T'as une petite classe de Test dans laquelle tu pourras tester ton DAO?

  12. #12
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 76
    Par défaut
    Classe Catégorie:
    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    public class Categorie implements Serializable{
     
    	private static final long serialVersionUID = 1L;
     
    	@Id
    	@GeneratedValue(strategy=GenerationType.SEQUENCE)
    	private long id;
    	private String descriptionCategorie;
     
    	@OneToMany(mappedBy="categorie")
    	private List<Produit> produits;
     
    	@OneToMany(mappedBy="categorie")
    	private List<Categorie> categories;
     
    	@ManyToOne
    	private Categorie categorie;
     
    	public Categorie() {}
     
    	public long getId() {
    		return id;
    	}
     
    	public void setId(long id) {
    		this.id = id;
    	}
     
    	public String getDescriptionCategorie() {
    		return descriptionCategorie;
    	}
     
    	public void setDescriptionCategorie(String descriptionCategorie) {
    		this.descriptionCategorie = descriptionCategorie;
    	}
     
    	public List<Produit> getProduits() {
    		return produits;
    	}
     
    	public void setProduits(List<Produit> produits) {
    		this.produits = produits;
    	}
     
    	public List<Categorie> getCategories() {
    		return categories;
    	}
     
    	public void setCategories(List<Categorie> categories) {
    		this.categories = categories;
    	}
     
    	public Categorie getCategorie() {
    		return categorie;
    	}
     
    	public void setCategorie(Categorie categorie) {
    		this.categorie = categorie;
    	}
     
     
     
    }
    Classe Produit:

    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
     
    public class Produit implements Serializable{
     
    	private static final long serialVersionUID = 1L;
     
    	@Id
    	@GeneratedValue(strategy=GenerationType.SEQUENCE)
    	private long id;
    	private String nom;
    	private String reference;
    	private String marque;
    	private double longueur;
    	private double largeur;
    	private double hauteur;
    	private String uniteMesure;
    	private double poids;
    	private String unitePoids;
    	private String couleur;
    	private boolean publiable;
    	private boolean quantitatif;
    	private double quantite;
    	private double prixHt;
    	private boolean enPromotion;
    	private double prixPromotionHt;
    	private double tauxTva;
    	@Column(length=1000)
    	private String courteDescription;
    	@Column(length=2000)
    	private String longueDescription;
    	@Temporal(TemporalType.DATE)
    	private Date dateCreation;
    	@Temporal(TemporalType.DATE)
    	private Date dateModification;
     
    	@OneToMany(mappedBy="produit", cascade=CascadeType.ALL)
    	private List<Image> images;
     
    	@ManyToOne
    	private Categorie categorie;
     
    	@ManyToOne
    	private Societe societe;
     
    	@OneToMany(mappedBy="produit")
    	private List<LigneCommande> ligneCommandes;
     
    	@OneToMany(mappedBy="produit")
    	private List<Alerte> alertes;
     
    	@OneToMany(mappedBy="produit")
    	private List<Souhait> souhaits;
     
     
    	@OneToMany(mappedBy="produit")
    	private List<Commentaire> commentaires;
     
    	public Produit() {}
     
    	public long getId() {
    		return id;
    	}
     
    	public void setId(long id) {
    		this.id = id;
    	}
     
    	public String getNom() {
    		return nom;
    	}
     
    	public void setNom(String nom) {
    		this.nom = nom;
    	}
     
    	public String getReference() {
    		return reference;
    	}
     
    	public void setReference(String reference) {
    		this.reference = reference;
    	}
     
    	public String getMarque() {
    		return marque;
    	}
     
    	public void setMarque(String marque) {
    		this.marque = marque;
    	}
     
    	public double getLongueur() {
    		return longueur;
    	}
     
    	public void setLongueur(double longueur) {
    		this.longueur = longueur;
    	}
     
    	public double getLargeur() {
    		return largeur;
    	}
     
    	public void setLargeur(double largeur) {
    		this.largeur = largeur;
    	}
     
    	public double getHauteur() {
    		return hauteur;
    	}
     
    	public void setHauteur(double hauteur) {
    		this.hauteur = hauteur;
    	}
     
    	public String getUniteMesure() {
    		return uniteMesure;
    	}
     
    	public void setUniteMesure(String uniteMesure) {
    		this.uniteMesure = uniteMesure;
    	}
     
    	public double getPoids() {
    		return poids;
    	}
     
    	public void setPoids(double poids) {
    		this.poids = poids;
    	}
     
    	public String getUnitePoids() {
    		return unitePoids;
    	}
     
    	public void setUnitePoids(String unitePoids) {
    		this.unitePoids = unitePoids;
    	}
     
    	public String getCouleur() {
    		return couleur;
    	}
     
    	public void setCouleur(String couleur) {
    		this.couleur = couleur;
    	}
     
    	public boolean isPubliable() {
    		return publiable;
    	}
     
    	public void setPubliable(boolean publiable) {
    		this.publiable = publiable;
    	}
     
    	public boolean isQuantitatif() {
    		return quantitatif;
    	}
     
    	public void setQuantitatif(boolean quantitatif) {
    		this.quantitatif = quantitatif;
    	}
     
    	public double getQuantite() {
    		return quantite;
    	}
     
    	public void setQuantite(double quantite) {
    		this.quantite = quantite;
    	}
     
    	public double getPrixHt() {
    		return prixHt;
    	}
     
    	public void setPrixHt(double prixHt) {
    		this.prixHt = prixHt;
    	}
     
    	public boolean isEnPromotion() {
    		return enPromotion;
    	}
     
    	public void setEnPromotion(boolean enPromotion) {
    		this.enPromotion = enPromotion;
    	}
     
    	public double getPrixPromotionHt() {
    		return prixPromotionHt;
    	}
     
    	public void setPrixPromotionHt(double prixPromotionHt) {
    		this.prixPromotionHt = prixPromotionHt;
    	}
     
    	public double getTauxTva() {
    		return tauxTva;
    	}
     
    	public void setTauxTva(double tauxTva) {
    		this.tauxTva = tauxTva;
    	}
     
    	public String getCourteDescription() {
    		return courteDescription;
    	}
     
    	public void setCourteDescription(String courteDescription) {
    		this.courteDescription = courteDescription;
    	}
     
    	public String getLongueDescription() {
    		return longueDescription;
    	}
     
    	public void setLongueDescription(String longueDescription) {
    		this.longueDescription = longueDescription;
    	}
     
    	public Date getDateCreation() {
    		return dateCreation;
    	}
     
    	public void setDateCreation(Date dateCreation) {
    		this.dateCreation = dateCreation;
    	}
     
    	public Date getDateModification() {
    		return dateModification;
    	}
     
    	public void setDateModification(Date dateModification) {
    		this.dateModification = dateModification;
    	}
     
    	public List<Image> getImages() {
    		return images;
    	}
     
    	public void setImages(List<Image> images) {
    		this.images = images;
    	}
     
    	public Categorie getCategorie() {
    		return categorie;
    	}
     
    	public void setCategorie(Categorie categorie) {
    		this.categorie = categorie;
    	}
     
    	public Societe getSociete() {
    		return societe;
    	}
     
    	public void setSociete(Societe societe) {
    		this.societe = societe;
    	}
     
    	public List<LigneCommande> getLigneCommandes() {
    		return ligneCommandes;
    	}
     
    	public void setLigneCommandes(List<LigneCommande> ligneCommandes) {
    		this.ligneCommandes = ligneCommandes;
    	}
     
    	public List<Alerte> getAlertes() {
    		return alertes;
    	}
     
    	public void setAlertes(List<Alerte> alertes) {
    		this.alertes = alertes;
    	}
     
    	public List<Souhait> getSouhaits() {
    		return souhaits;
    	}
     
    	public void setSouhaits(List<Souhait> souhaits) {
    		this.souhaits = souhaits;
    	}
     
    	public List<Commentaire> getCommentaires() {
    		return commentaires;
    	}
     
    	public void setCommentaires(List<Commentaire> commentaires) {
    		this.commentaires = commentaires;
    	}
     
     
     
    }
    Classe Image:
    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
     
    public class Image implements Serializable{
     
    	private static final long serialVersionUID = 1L;
     
    	@Id
    	@GeneratedValue(strategy=GenerationType.SEQUENCE)
    	private long id;
    	private String chemin;
    	private long longueur;
    	private long largeur;
     
    	@ManyToOne
    	private Produit produit;
     
    	public Image(){}
     
    	public long getId() {
    		return id;
    	}
    	public void setId(long id) {
    		this.id = id;
    	}
    	public String getChemin() {
    		return chemin;
    	}
    	public void setChemin(String chemin) {
    		this.chemin = chemin;
    	}
    	public long getLongueur() {
    		return longueur;
    	}
    	public void setLongueur(long longueur) {
    		this.longueur = longueur;
    	}
    	public long getLargeur() {
    		return largeur;
    	}
    	public void setLargeur(long largeur) {
    		this.largeur = largeur;
    	}
     
    	public Produit getProduit() {
    		return produit;
    	}
     
    	public void setProduit(Produit produit) {
    		this.produit = produit;
    	}
     
    }

  13. #13
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    try {
    			//Query query=em.createNativeQuery("select produit.nom,image.chemin from categorie,produit,image where categorie.id=produit.categorie_id and produit.id=image.produit_id");
    			Query query = em.createQuery("select p FROM Produit as p join Image as img WHERE img.categorie.id = :idCatParam");
    			query.setParameter("idCatParam", idCat);
    			return (List<Produit>)query.getSingleResult();
    		}catch(Exception e){
    			e.printStackTrace();
    			return null;
    		}

  14. #14
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 76
    Par défaut
    et pour la déclaration des methodes dans la page index.xhtml est ce qu'il est correcte?????

  15. #15
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 76
    Par défaut
    le meme erreur le programme ne récupére pas les images des produit ainsi il ne prend pas on concéquence categorie du produit ,je veux lorsque je click sur le catégorie choisi il m'affiche le produit avec son image

  16. #16
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 76
    Par défaut
    voici erreur qu'il m'affiche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    java.lang.IllegalArgumentException: An exception occurred while creating a query in EntityManager: 
    Exception Description: Syntax error parsing the query [select p FROM Produit as p join Image as img WHERE img.categorie.id =:idCatParam].

  17. #17
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Ah pardon, autant pour moi, il fallait passer par le produit pour remonter à sa catégorie.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Query query = em.createQuery("select p FROM Produit as p join Image as img WHERE img.produit.categorie.id = :idCatParam");
    Ou plus simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Query query = em.createQuery("select p FROM Categorie cat join produits p WHERE cat.id = :idCatParam");
    ,c'est une simple navigation à la UML. Ou plus encore simplement sans passer par un NamedQuery tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List<Produit> produitsCat = ((List<Produit>)em.findById(idCat)).getProduits();
    , ceci dit je pense que tu n'as pas passé assez de temps dans l'auto formation, tu n'as pas assez lu (ou pas du tout ) le tutoriel que je t'ai transmis

  18. #18
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 76
    Par défaut
    j'ai trouvé un autre problème dans l'appelle du méthode afficher est ce je dois l'ecrire sous cette forme?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    item.setUrl( new ProduitBean().afficher());
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public String afficher() {
     
    		tout_les_prod=new DaoProduit().findById(idCat);

  19. #19
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Il faut résoudre les soucis par étape, qu'on termine d'abord avec ton souci précédent, je ne sais pas où il en est. Qu'a donné ma dernière proposition?

  20. #20
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 76
    Par défaut
    la requête ne fonctionne pas correctement a cause du méthode afficher car j'ai ajouter la méthode dans le menu pour que lorsque je clique sur la catégorie choisi il faut qu'il m'affiche le produit avec son image.

    je vous remercie fort pour ton aide mais vraiment je me sens pas bien car ça fais 2 semaine que je suis fasse a ce problème et j'ai pas trouvé la bonne solution.

Discussions similaires

  1. jointure en jpa dans une formulaire jsf
    Par tifawa dans le forum JSF
    Réponses: 10
    Dernier message: 21/06/2012, 18h22
  2. [JPA] CSV et jointure
    Par LeCogiteur dans le forum JPA
    Réponses: 5
    Dernier message: 21/03/2011, 12h18
  3. Réponses: 0
    Dernier message: 07/02/2011, 12h53
  4. requête JPA jointure
    Par damii1 dans le forum JPA
    Réponses: 1
    Dernier message: 16/01/2009, 18h44
  5. probleme d'une requete de jointure (JPA QL)
    Par chflb dans le forum JPA
    Réponses: 3
    Dernier message: 05/05/2008, 17h56

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