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 :

Récupérer la valeur d'une clé étrangère en HQL


Sujet :

JPA Java

  1. #1
    Membre actif
    Inscrit en
    Juin 2005
    Messages
    578
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 578
    Points : 240
    Points
    240
    Par défaut Récupérer la valeur d'une clé étrangère en HQL
    Bonjour

    J'ai 2 beans (Dossier et Entrée) dont voici les caractéristiques:

    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
    @Entity
    @Table(name = "DOSSIER")
    public class Dossier {
     
    	@Id
    	@GeneratedValue(strategy = GenerationType.IDENTITY)
    	@Column(name = "ID_DOSSIER", updatable = false, nullable = false)
    	private long idDossier;
     
    	@Column(name = "NUM_DOSSIER",  insertable=true, updatable=true, nullable=false)
    	private String numDossier;
     
    	@ManyToOne(fetch = FetchType.LAZY)
    	@JoinColumn(name = "client_id", nullable = false)
    	private Client client;
     
    	@OneToMany(mappedBy="dossier", cascade = CascadeType.ALL)
        private Set<Entree> entrees;
    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
    @Entity
    @Table(name = "ENTREE")
    public class Entree {
     
    	@Id
    	@GeneratedValue(strategy = GenerationType.IDENTITY)
    	@Column(name = "ID_ENTREE", updatable = false, nullable = false)
    	private long idEntree;
     
    	@Column(name = "DATE_ENTREE", insertable=true, updatable=true, nullable=true)
    	private String dateEntree;
     
     
        @ManyToOne
        @JoinColumn(name="idDossier", nullable=false)
        private Dossier dossier;
    Un dossier peut contenir plusieurs entrée.

    J'aimerai maintenant afficher le Id de dossier pour une entrée donnée. J'ai donc fait ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @Query("SELECT idDossier FROM Entree WHERE id_entree = :id_entree ")
    	 long findIdDossierByIdEntree(@Param("id_entree") long id_entree);
    Le problème est que je reçois ce message d'erreur:

    Caused by: java.lang.IllegalArgumentException: Validation failed for query for method public abstract long com.nitraentrepot.repository.EntreeRepository.findIdDossierByIdEntree(long)!
    Je pense que c'est dû au fait il n y a pas de getter et setter pour IdDossier dans le bean Dossier.

    Donc comment régler ce problème.

    Merci

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Cette requête n'est pas conforme au HQL, elle devrait s'écrire comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select a.dossier.idDossier from Entree a where a.idEntree = :idEntree
    Ce que tu as écrit mélange du HQL et du NativeQuery.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre actif
    Inscrit en
    Juin 2005
    Messages
    578
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 578
    Points : 240
    Points
    240
    Par défaut
    Merci beaucoup, ça marche

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

Discussions similaires

  1. Récupérer la valeur d'une variable distante
    Par seblo_scoqi dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/09/2005, 16h10
  2. récupérer la valeur d'une checkbox
    Par druglord dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/08/2005, 13h54
  3. Récupérer la valeur d'une adresse hexa 300.
    Par Cochman dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 04/06/2005, 17h45
  4. Réponses: 2
    Dernier message: 29/05/2005, 19h50
  5. [C#] [Automation Word] Récupérer la valeur d'une cellule
    Par Ditch dans le forum Windows Forms
    Réponses: 2
    Dernier message: 16/06/2004, 15h57

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