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 :

Créer une requete ejb ql sur uen relation one-to-many


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 504
    Par défaut Créer une requete ejb ql sur uen relation one-to-many
    salut,

    j'ai crée 2 entity :

    name :

    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
    package com.progiciel.jpa;
     
    import java.io.Serializable;
    import java.util.ArrayList;
    import java.util.List;
     
    import javax.persistence.*;
     
    /**
     * Entity implementation class for Entity: Name
     *
     */
    @Entity
    @Table(name="name")
    public class Name implements Serializable {
     
     
    	private static final long serialVersionUID = 1L;
     
    	public Name() {
    		super();
    	}
     
    	@Id
    	@GeneratedValue(strategy= GenerationType.TABLE)
    	private Long id;
     
    	private String name="";
     
     
     
    	public Long getId() {
    		return id;
    	}
     
     
     
    	public void setId(Long id) {
    		this.id = id;
    	}
     
     
     
    	public String getName() {
    		return name;
    	}
     
     
     
    	public void setName(String name) {
    		this.name = name;
    	}
     
    	@OneToMany(mappedBy="name")
    	private List<Donnees> donnees =new ArrayList<Donnees>();
     
    	public List<Donnees> getDonnees() {
    		return donnees;
    	}
     
     
     
    	public void setDonnees(List<Donnees> donnees) {
    		this.donnees = donnees;
    	} 
     
     
     
     
     
    }
    et donnees :

    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
    package com.progiciel.jpa;
     
    import java.io.Serializable;
    import javax.persistence.*;
     
    /**
     * Entity implementation class for Entity: Donnees
     *
     */
    @Entity
    @Table(name="donnees")
    public class Donnees implements Serializable {
     
     
     
    	private static final long serialVersionUID = 1L;
     
    	public Donnees() {
    		super();
    	}
     
    	@Id
    	@GeneratedValue(strategy= GenerationType.TABLE)
    	private Long id;
     
    	private String OPTIONDONNEES="";
     
    	private String ALTITUDE="";
     
    	private String PRESSION_TOTALE="";
     
    	private String TEMPERATURE_SECHE="";
     
    	private String HUMIDITE_RELATIVE="";
     
    	private String PRESSION_VAPEUR_SATUREE="";
     
    	private String PRESSION_PARTIELLE_EAU="";
     
    	private String PRESSION_PARTIELLE_AIR="";
     
    	private String HUMIDITE_ABSOLUE="";
     
    	private String HUMIDITE_ABSOLUE_SATURATION="";
     
    	private String DEGRES="";
     
    	private String MASSE_VOLUMIQUE="";
     
    	private String VOLUME_SPECIFIQUE="";
     
    	private String ENTHALGIE="";
     
    	private String TEMPERATURE_HUMIDE="";
     
    	private String TEMPERATURE_ROSEE="";
     
     
     
     
    	public String getALTITUDE() {
    		return ALTITUDE;
    	}
     
    	public void setALTITUDE(String aLTITUDE) {
    		ALTITUDE = aLTITUDE;
    	}
     
    	public String getPRESSION_TOTALE() {
    		return PRESSION_TOTALE;
    	}
     
    	public void setPRESSION_TOTALE(String pRESSIONTOTALE) {
    		PRESSION_TOTALE = pRESSIONTOTALE;
    	}
     
    	public String getTEMPERATURE_SECHE() {
    		return TEMPERATURE_SECHE;
    	}
     
    	public void setTEMPERATURE_SECHE(String tEMPERATURESECHE) {
    		TEMPERATURE_SECHE = tEMPERATURESECHE;
    	}
     
    	public String getHUMIDITE_RELATIVE() {
    		return HUMIDITE_RELATIVE;
    	}
     
    	public void setHUMIDITE_RELATIVE(String hUMIDITERELATIVE) {
    		HUMIDITE_RELATIVE = hUMIDITERELATIVE;
    	}
     
    	public String getPRESSION_VAPEUR_SATUREE() {
    		return PRESSION_VAPEUR_SATUREE;
    	}
     
    	public void setPRESSION_VAPEUR_SATUREE(String pRESSIONVAPEURSATUREE) {
    		PRESSION_VAPEUR_SATUREE = pRESSIONVAPEURSATUREE;
    	}
     
    	public String getPRESSION_PARTIELLE_EAU() {
    		return PRESSION_PARTIELLE_EAU;
    	}
     
    	public void setPRESSION_PARTIELLE_EAU(String pRESSIONPARTIELLEEAU) {
    		PRESSION_PARTIELLE_EAU = pRESSIONPARTIELLEEAU;
    	}
     
    	public String getPRESSION_PARTIELLE_AIR() {
    		return PRESSION_PARTIELLE_AIR;
    	}
     
    	public void setPRESSION_PARTIELLE_AIR(String pRESSIONPARTIELLEAIR) {
    		PRESSION_PARTIELLE_AIR = pRESSIONPARTIELLEAIR;
    	}
     
    	public String getHUMIDITE_ABSOLUE() {
    		return HUMIDITE_ABSOLUE;
    	}
     
    	public void setHUMIDITE_ABSOLUE(String hUMIDITEABSOLUE) {
    		HUMIDITE_ABSOLUE = hUMIDITEABSOLUE;
    	}
     
    	public String getHUMIDITE_ABSOLUE_SATURATION() {
    		return HUMIDITE_ABSOLUE_SATURATION;
    	}
     
    	public void setHUMIDITE_ABSOLUE_SATURATION(String hUMIDITEABSOLUESATURATION) {
    		HUMIDITE_ABSOLUE_SATURATION = hUMIDITEABSOLUESATURATION;
    	}
     
    	public String getDEGRES() {
    		return DEGRES;
    	}
     
    	public void setDEGRES(String dEGRES) {
    		DEGRES = dEGRES;
    	}
     
    	public String getMASSE_VOLUMIQUE() {
    		return MASSE_VOLUMIQUE;
    	}
     
    	public void setMASSE_VOLUMIQUE(String mASSEVOLUMIQUE) {
    		MASSE_VOLUMIQUE = mASSEVOLUMIQUE;
    	}
     
     
     
    	public String getVOLUME_SPECIFIQUE() {
    		return VOLUME_SPECIFIQUE;
    	}
     
    	public void setVOLUME_SPECIFIQUE(String vOLUMESPECIFIQUE) {
    		VOLUME_SPECIFIQUE = vOLUMESPECIFIQUE;
    	}
     
    	public String getENTHALGIE() {
    		return ENTHALGIE;
    	}
     
    	public void setENTHALGIE(String eNTHALGIE) {
    		ENTHALGIE = eNTHALGIE;
    	}
     
    	public String getTEMPERATURE_HUMIDE() {
    		return TEMPERATURE_HUMIDE;
    	}
     
    	public void setTEMPERATURE_HUMIDE(String tEMPERATUREHUMIDE) {
    		TEMPERATURE_HUMIDE = tEMPERATUREHUMIDE;
    	}
     
    	public String getTEMPERATURE_ROSEE() {
    		return TEMPERATURE_ROSEE;
    	}
     
    	public void setTEMPERATURE_ROSEE(String tEMPERATUREROSEE) {
    		TEMPERATURE_ROSEE = tEMPERATUREROSEE;
    	}
     
    	public Long getId() {
    		return id;
    	}
     
    	public void setId(Long id) {
    		this.id = id;
    	}
     
    	public String getOPTIONDONNEES() {
    		return OPTIONDONNEES;
    	}
     
    	public void setOPTIONDONNEES(String oPTIONDONNEES) {
    		OPTIONDONNEES = oPTIONDONNEES;
    	}
     
     
    	@ManyToOne
    	private Name name;
     
    	public Name getName() {
    		return name;
    	}
     
    	public void setName(Name name) {
    		this.name = name;
    	}
     
     
     
    }
    la table name est relié a la table donnees en oneToMany

    je voudrais savoir comment ecrit'on en langage ejb ql : selectionne tout les elements de la table donnees ou se trouve l'id numero 1 de la table name.

    merci !

  2. #2
    Membre expérimenté Avatar de Shinzul
    Homme Profil pro
    Lecteur assidu de code source
    Inscrit en
    Janvier 2008
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Lecteur assidu de code source
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2008
    Messages : 174
    Par défaut
    Je propose la requette suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT DISTINCT OBJECT(d)
    FROM Name n, IN (n.donnees) AS d
    WHERE n.id = 1
    Après je suis pas un grand spécialiste de l'ejbql donc tient moi au courent si ca marche

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 504
    Par défaut
    salut ,
    excuse moi pour te repondre un peu en retard,

    oui , ton code pour la requete semble bien fonctionner, il y a pas d'erreur.

    mais j'ai un autre probleme ,je n'arrive pas afficher le resultat .


    voici le code que j'utilise pour afficher la requette :

    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
     
    	public void test(){
     
     
    		setUP();
     
    		manager.getTransaction().begin();
     
    		//Query q =manager.createQuery("select object (d) from Name as n, in (n.donnees) as d where n.id = 1");
     
    		Query q =manager.createQuery("SELECT DISTINCT OBJECT(d) FROM Name n, IN (n.donnees) AS d WHERE n.id = 1");
     
    		  List n =  q.getResultList();
     
    		 Iterator iterator =n.iterator();
    		 while(iterator.hasNext()){
    			  Donnees don =new Donnees();
    			 don =(Donnees)iterator.next();
    			 JOptionPane.showMessageDialog(null, don.getDEGRES()+" "+don.getALTITUDE()," ",JOptionPane.INFORMATION_MESSAGE);
    		 }

  4. #4
    Membre expérimenté Avatar de Shinzul
    Homme Profil pro
    Lecteur assidu de code source
    Inscrit en
    Janvier 2008
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Lecteur assidu de code source
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2008
    Messages : 174
    Par défaut
    Je vois pas trop de problèmes dans ton code en fait

    Je te dirai de regarder la taille de la liste pour verifier combien il y a d'élément, ca permettra de verifier ce qui pose problème.

    Si la taille de la liste est bien égale aux nombre d'objet qui doivent être retourner cest qu'il y a un problème soit sur l'iteration ou l'affichage. Autrement le problème viendrait de la requête ou alors même de la base :/

    Tente aussi de caster le retour de la requete en List<Donnee> on sais jamais :p

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/09/2012, 09h20
  2. [VB6]créer une requete pour chercher une partie d'un mot
    Par aibar dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 11/06/2006, 21h38
  3. [CR11] comment créer une requete manuelle ?
    Par c_moi_c_moi dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 14/05/2006, 22h35
  4. Comment créer une requete
    Par Raphael39 dans le forum Access
    Réponses: 21
    Dernier message: 08/01/2006, 19h36
  5. Comment effacer et créer une requete Access ??
    Par Mustard007 dans le forum Bases de données
    Réponses: 1
    Dernier message: 01/11/2005, 23h15

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