begin process at 2010 02 10 13:11:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Divers

 > 

Débutant(e)

 > 

manipulation de colonne selectionné avec JPQL


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

manipulation de colonne selectionné avec JPQL

samedi 16 mai 2009 à 17:13:56 | manipulation de colonne selectionné avec JPQL

asmahane24

Bonjour; Veuillez m'aider sur le point suivant: j'ecris une requete JPQL qui me rend une seul colonne (requete suivante) Collection pa = em.createQuery("select fr.code_rub from Fact_Rubrique fr join fr.factures fd where fd.facture.fact_code='I20070100011'").getResultList(); java.util.ArrayList list = new java.util.ArrayList(pa); System.out.println(list.get(0)); pour cette requete je peut afficher le resultat. Le probleme est quand la requete me rend Plusieurs colonnes, je ne sais pas comment manipuler les données. La requete est la suivante: Collection pa = em.createQuery("select fr.code_rub, fr.abrev_rub from Fact_Rubrique fr join fr.factures fd where " + " fd.facture.fact_code='I20070100011'").getResultList(); java.util.ArrayList list = new java.util.ArrayList(pa); System.out.println(list.get(0)+" abreviation: "+list.get(1)); ça me rend: [Ljava.lang.Object;@118278a abreviation: [Ljava.lang.Object;@cc0e01 j'utilise jdk1.6u11 merci de m'aider.
samedi 16 mai 2009 à 18:10:42 | Re : manipulation de colonne selectionné avec JPQL

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Salut,

Il faut que tu caste les données renvoyées, au lieu de faire :
java.util.ArrayList list = new java.util.ArrayList(pa);

Fait plutôt :
java.util.ArrayList<Fact_Rubrique> list = new java.util.ArrayList <Fact_Rubrique>(pa);
dimanche 17 mai 2009 à 09:47:22 | Re : manipulation de colonne selectionné avec JPQL

asmahane24

Bonjour; Je vous remercie pour la reponse mais je n'arrive toujours pas a manipuler mes données. Les instructions suivantes me rendent toujours le meme resultat. Collection pa = em.createQuery("select fr.code_rub, fr.abrev_rub from Fact_Rubrique fr join fr.factures fd where " + " fd.facture.fact_code='I20070100011'").getResultList(); java.util.ArrayList list = new java.util.ArrayList (pa); System.out.println(list.get(0)+" abreviation: "+list.get(1)); resultat: [Ljava.lang.Object;@bf1d3b abreviation: [Ljava.lang.Object;@118278a et pour les instructions suivantes qui me semblait correcte: Collection pa = em.createQuery("select fr.code_rub, fr.abrev_rub from Fact_Rubrique fr join fr.factures fd where " + " fd.facture.fact_code='I20070100011'").getResultList(); java.util.ArrayList list = new java.util.ArrayList (pa); System.out.println(list.get(0).getCode_rub()+" abreviation: "+list.get(1).getAbrev_rub()); voici le resultat: [Ljava.lang.Object; cannot be cast to com.soft.donnee.Fact_Rubrique je code de Fact_Rubrique est le suivant: package com.soft.donnee; import java.util.HashSet; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.OneToMany; import javax.persistence.Table; @Entity @Table(name = "fact_rubrique") public class Fact_Rubrique { @Id private String code_rub; private String libelle_rub; private float tva_rub; private String regle_rub; private String type_rub; private String def_rub; private int priorite_rub; private String classe_rub; private String abrev_rub; private String affiche_rub_code; private String compte_rub; private String PM; @OneToMany(mappedBy = "fact_Rubrique", cascade = { CascadeType.REMOVE }) private Set factures = new HashSet(); public Set getFactures() { return factures; } public void setFactures(Set factures) { this.factures = factures; } public Fact_Rubrique() { } public String getCode_rub() { return code_rub; } public void setCode_rub(String code_rub) { this.code_rub = code_rub; } public String getLibelle_rub() { return libelle_rub; } public void setLibelle_rub(String libelle_rub) { this.libelle_rub = libelle_rub; } public float getTva_rub() { return tva_rub; } public void setTva_rub(float tva_rub) { this.tva_rub = tva_rub; } public String getRegle_rub() { return regle_rub; } public void setRegle_rub(String regle_rub) { this.regle_rub = regle_rub; } public String getType_rub() { return type_rub; } public void setType_rub(String type_rub) { this.type_rub = type_rub; } public String getDef_rub() { return def_rub; } public void setDef_rub(String def_rub) { this.def_rub = def_rub; } public int getPriorite_rub() { return priorite_rub; } public void setPriorite_rub(int priorite_rub) { this.priorite_rub = priorite_rub; } public String getClasse_rub() { return classe_rub; } public void setClasse_rub(String classe_rub) { this.classe_rub = classe_rub; } public String getAbrev_rub() { return abrev_rub; } public void setAbrev_rub(String abrev_rub) { this.abrev_rub = abrev_rub; } public String getAffiche_rub_code() { return affiche_rub_code; } public void setAffiche_rub_code(String affiche_rub_code) { this.affiche_rub_code = affiche_rub_code; } public String getCompte_rub() { return compte_rub; } public void setCompte_rub(String compte_rub) { this.compte_rub = compte_rub; } public String getPM() { return PM; } public void setPM(String pm) { PM = pm; } public String toString() { return "Code rubrique :"+getCode_rub()+ " Libelle: "+getLibelle_rub()+ " Reglement "+getRegle_rub(); } } merci de m'aider.
dimanche 17 mai 2009 à 09:53:46 | Re : manipulation de colonne selectionné avec JPQL

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Ben forcément qu'elles te donnnent toujours le même résultat : tu n'as pas utilisé ce que je t'ai dit ! Il faut utiliser les generics pour typer tes données contenues dans tes listes, ou sinon caster les objets dans tes listes. Sans cà, java les considérera toujours comme des Object !
dimanche 17 mai 2009 à 14:31:02 | Re : manipulation de colonne selectionné avec JPQL

asmahane24

Bonjour; Je vous remercie pour votre aide. voila ce que j'ai fait: List pa = em.createQuery("select fr.code_rub, fr.abrev_rub from Fact_Rubrique fr join fr.factures fd where " + " fd.facture.fact_code='I20070100011'").getResultList(); for ( Object[] info : pa) { System.out.println(info[0] + " : " + info[1]); } j'ai une autre question s'il vous plait, je voudrais maintenant affecter info[x] dans des variables, pouriez vous m'aider s'il vous plait. Je tien a vous dire que je suis nouvelle dans le monde JAVA, vous aviez du remarquer cela vu mes questions. Merci.
dimanche 17 mai 2009 à 15:15:26 | Re : manipulation de colonne selectionné avec JPQL

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Tu n'as toujours pas compris ce que je t'ai dit apparement : Si tu travaille avec des Object, java t'affichera des java.lang.Object;@118278a dans la console, et tu ne pourras pas les manipuler à ta guise !

Il faut les caster dans le bon type :
List<Fact_Rubrique> pa = em.createQuery("select fr.code_rub, fr.abrev_rub from Fact_Rubrique fr join fr.factures fd where " + " fd.facture.fact_code='I20070100011'").getResultList();

for ( Fact_Rubrique info : pa) { System.out.println(info.getCode_rub() + " : " + info.getAbrev_rub()); }
dimanche 17 mai 2009 à 15:26:36 | Re : manipulation de colonne selectionné avec JPQL

asmahane24

Bonjour; La requete me rend 2parametres et Fact_Rubrique est composée de plus de 4parametres. j'ai toujours l'erreur suivante en appliquant ces instructions: Ljava.lang.Object; cannot be cast to com.marinesoft.donnee.Fact_Rubrique Merci;
dimanche 17 mai 2009 à 15:37:47 | Re : manipulation de colonne selectionné avec JPQL

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
C'est que ta requête ne te renvoie pas un Fact_Rubrique à ce moment là !

Il te faut faire une classe qui prendre les mêmes paramètres que le résultat attendu : c'est bien plus simple à manipuler ensuite...
dimanche 17 mai 2009 à 15:47:19 | Re : manipulation de colonne selectionné avec JPQL

asmahane24

Bonjour; Voila j'ai créé une classe generique contenant le code suivant: package com.marinesoft.generic; public class MaClasseGeneric { private T1 param1; private T2 param2; public MaClasseGeneric(T1 param1, T2 param2) { this.param1 = param1; this.param2 = param2; } public T1 getParam1() { return this.param1; } public T2 getParam2() { return param2; } public void setParam2(T2 param2) { this.param2 = param2; } public void setParam1(T1 param1) { this.param1 = param1; } } et dans mon main j'ai le code suivant sachant que le resultata rendu par ma requete et de type String: List> pa = em.createQuery("select fr.code_rub, fr.abrev_rub from Fact_Rubrique fr join fr.factures fd where " + " fd.facture.fact_code='I20070100011'").getResultList(); for ( MaClasseGeneric info : pa) { System.out.println(info.getParam1()+ " : " + info.getParam2()); } l'erreur suivante s'affiche (le meme probleme) Ljava.lang.Object; cannot be cast to com.soft.generic.MaClasseGeneric Je vous remercie.
dimanche 17 mai 2009 à 16:49:26 | Re : manipulation de colonne selectionné avec JPQL

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Toujours le même problème : ce n'est pas un MaClasseGeneric que te renvoie hibernate !

Il te faut avoir un EntityBean, qui soit mappé avec ta table, sinon forcément, il ne va pas te renvoyer n'importe quelle instance de classe...

Je te conseille vraiment de lire un tutorial sur JPA ou Hibernate pour comprendre ce concept, car là tu na vas pas aller bien loin avec cette lacune.

Grosso-modo, ca consiste à faire une classe comme tu l'as fait, mais en spécifiant en plus qu'il s'agit d'un entityBean, avec le nom de la table qui est mappée à ce bean, et quelle colonne est mappée avec quel propriété de ta classe.

Sans ce mapping Objet/Relationnel, JPA est absolument incapable (et ca se comprend) de savoir que la colonne code_rub doit être stockée dans la propriété param1 de la classe MaClasseGeneric !!!

1 2

Cette discussion est classée dans : code, pa, requete, list, fr


Répondre à ce message

Sujets en rapport avec ce message

Requete avec un substring [ par snatch12 ] bonjour all :) g un pti soucis sur une requete SQL :voila j'ai une table etablissement avec plusieurs champs dont un champ nommé rne (char 10).chaque gestion de resultat de requete MYSQL et JAVA [ par oceane751 ] salut! j'essaie d'afficher le resultat de ma requete SQL avec du code JAVA mais ya un truc qui me chiffonne... le resultat se fait sous la forme : [co pb de requete executeUpdate [ par lucky82 ] Bonsoir,J'ai un petit probmlème ave l'execution de la requête INSERT INTO avec une page JSP, voici mon code:  statement  = connection.createStatement( problème avec JComboBox [ par ulysse00 ] salut j'ai problème avec  une requete  avec la condition  :where a like '" + v + "%'   les valeurs de combobox coresspand à des valeurs de la table ar requete mysql dans un code java [ par nasrouna84 ] hiiii je veux connaitre les requetes sql dans code java comment faire exemle: ResultSet r= s.executeQuery("SELECT"+champ+" "+"FROM"+table+" +"WHERE [Access] Exécuté une requete nommé de access en java [ par facilus68 ] Bonjour; J'ai une requete existante dans Access dont le nom est "requete1", la requete est un simple INSERT INTO. J'ai pas les droit Admin pour accede code JAVA et requete SQL [ par oceane751 ] bonjour! je suis en train de creer un programme permettant de supprimer, mettre à jour, chercher et ajouter des elements d'une base de donner j'ai dej Problème avec la requete d'Insertion [ par omarF ] où sont les réponses et où est tu Dark ??? Aider moi jarrive pas a faire executer la requete d'Insertion . Pour mon cas jai un table qui sappelle Po requete parametrer [ par Nina2507 ] bjr, je travaille sur tp et je dois faire une recherche ds la base de données.pour cela j'ai fé le code suivant:public void ReqRech(int Code){  try {  Soucis moussePressed & mousseDragged [ par FiReTiTi ] Bonjour,je souhaite utiliser la souris pour gérer les rotations d'un objet dans mon application 3D. Pour cela, j'ai besoin des coordonnées du clic au


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,796 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales