Partage
  • Partager sur Facebook
  • Partager sur Twitter

JPA, OneToMany, requête jointure, JAVA

    25 novembre 2014 à 10:12:32

    Bonjour à tous,

    j'ai trois table: personne, séances et réservation.

     réservation, personne : relation de type OneToMany bidirectionnelle.

     réservation, séances : relation de type OneToMany bidirectionnelle.

    Via cette requête: 

    @Override
    	public List<Reservation> getRes(long idp)
    	{
    		TypedQuery<Reservation> q= (TypedQuery<Reservation>) em.createQuery("select idp.mail from Reservation r left join r.identitePersonne idp where r.identitePersonne.id_personne='"+idp+"'", Reservation.class);
    		
    		return  q.getResultList();
    	}

    je veux afficher quelques informations et pas la totalité.

    avec le code ci dessus, j'arrive à afficher le mail normalement: [xxxx@yyyyy.com],

    mais quand je fais ça, et donc afficher quelques champs seulement: 

    @Override
    	public List<Reservation> getRes(long idp)
    	{
    		TypedQuery<Reservation> q= (TypedQuery<Reservation>) em.createQuery("select idp.mail, r.nombre_place, s.date_debut_seance from Reservation r join r.identitePersonne idp join r.seance s where r.identitePersonne.id_personne='"+idp+"'", Reservation.class);
    		
    		return  q.getResultList();
    	}

    ça donne le résultat suivant:  [[Ljava.lang.Object;@7aaeea3a]. 

    Quelqu'un peut m'expliquer ce résultat, et me dire si ma requête est correct ou pas!

    je vous remercie d'avance pour votre aide.

    cordialement,

    • Partager sur Facebook
    • Partager sur Twitter
    MN
      26 novembre 2014 à 6:12:33

      Oui.Il faut que tu itères sur ta liste for(objet o:nom instance){

      System.out.println(o.get....+""+o.get..);}.Utilises un simple query pour la req.

      Si jpa ou est ton entitymanager?...Un ex:

      @Override
      	public List<Categorie> listCategories() {
      	Query req=em.createQuery("select c from Categorie c");
      	return req.getResultList();
      	}
      

      Bonne continuation

      • Partager sur Facebook
      • Partager sur Twitter
        26 novembre 2014 à 9:45:16

        bonjour ,

        merci pour le retour!

        je vais modifier ma requête, par contre dans ton exemple c'est une simple requête pour récupérer les champs de la tables catégorie, alors que moi je souhaite faire une jointure entre 3 tables.

        Pour ta question: Si jpa ou est ton entitymanager?,  oui c'est JPA, et j'ai utilisé l em dans la requête !!

        em.createQuery("select ........")

        merci encore, je reviendrai pour poster mon code final et mettre le post à résolu (si j'y arriverais ^^)

        bonne journée :)

        • Partager sur Facebook
        • Partager sur Twitter
        MN

        JPA, OneToMany, requête jointure, JAVA

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown