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 :

Resultat incohérent requete JPQL


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 210
    Par défaut Resultat incohérent requete JPQL
    Bonjour, en executant une requete JPQL je me retrouve avec une liste contenant X fois le meme objet.

    si ma requete doit retourner 10 lignes, le resultat du JPQL va etre 10 fois la premiere ligne

    quelqu'un a deja eu le probleme ?
    PS : j'ai vérifié la requete sql

    Le code :
    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
    Query query = em.createQuery("SELECT h from HotelsDispos h WHERE h.hdiHotelid=:hotelId AND h.hdiDatedispo >= :dateDeb and h.hdiDatedispo < :dateFin");
            query.setParameter("hotelId", hotelReference.getCode());
     
            try {
                query.setParameter("dateDeb", sdf.parse(dateDebutDDMMYYYY));
                query.setParameter("dateFin", sdf.parse(dateFinDDMMYYYY));
            } catch (ParseException ex) {
                throw new BusinessException("BusinessException.availability.date.parsing");
            }
     
            List<HotelsDispos> dispos = query.getResultList();
     
            Logger.getLogger(HotelBean.class.getName()).finest(":::::::::::::::::::::::>"+dispos.get(0).getHdiCodeprestation()+"::"+dispos.get(0).getHdiTotal());
            Logger.getLogger(HotelBean.class.getName()).finest(":::::::::::::::::::::::>"+dispos.get(1).getHdiCodeprestation()+"::"+dispos.get(0).getHdiTotal());
            Logger.getLogger(HotelBean.class.getName()).finest(":::::::::::::::::::::::>"+dispos.get(2).getHdiCodeprestation()+"::"+dispos.get(0).getHdiTotal());
    Les logs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    [#|2009-07-03T10:30:01.556+0200|FINEST|sun-appserver2.1|com.hotel.business.HotelBean|_ThreadID=20;_ThreadName=httpSSLWorkerThread-80-0;ClassName=com.hotel.business.HotelBean;MethodName=getDispos;_RequestID=1afc2fcf-c528-4329-a39c-34e108b212a9;|:::::::::::::::::::::::>C1::54|#]
     
    [#|2009-07-03T10:30:01.557+0200|FINEST|sun-appserver2.1|com.hotel.business.HotelBean|_ThreadID=20;_ThreadName=httpSSLWorkerThread-80-0;ClassName=com.hotel.business.HotelBean;MethodName=getDispos;_RequestID=1afc2fcf-c528-4329-a39c-34e108b212a9;|:::::::::::::::::::::::>C1::54|#]
     
    [#|2009-07-03T10:30:01.558+0200|FINEST|sun-appserver2.1|com.hotel.business.HotelBean|_ThreadID=20;_ThreadName=httpSSLWorkerThread-80-0;ClassName=com.hotel.business.HotelBean;MethodName=getDispos;_RequestID=1afc2fcf-c528-4329-a39c-34e108b212a9;|:::::::::::::::::::::::>C1::54|#]
    Le bean :
    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
    @Entity
    @Table(name = "HOTEL_DISPOS_VIEW")
    @NamedQueries({@NamedQuery(name = "HotelsDispos.findAll", query = "SELECT h FROM HotelsDispos h"), @NamedQuery(name = "HotelsDispos.findByHdiHotelid", query = "SELECT h FROM HotelsDispos h WHERE h.hdiHotelid = :hdiHotelid"), ....)
    public class HotelsDispos implements Serializable {
        private static final long serialVersionUID = 1L;
        @Basic(optional = false)
        @Column(name = "HDI_HOTELID")
        @Id
        private String hdiHotelid;
        @Basic(optional = false)
        @Column(name = "HDI_DATEDISPO")
        @Temporal(TemporalType.DATE)
        private Date hdiDatedispo;
        @Basic(optional = false)
        @Column(name = "HDI_CODEPRESTATION")
        private String hdiCodeprestation;
        @Column(name = "HDI_TOTAL")
        private int hdiTotal;
        @Column(name = "HDI_OCCUPE")
        private int hdiOccupe;
        @Column(name = "HDI_HS")
        private int hdiHs;
        @Column(name = "HDI_BLOQUE")
        private int hdiBloque;
        @Column(name = "HDI_LOCK")
        private int hdiLock;
        @Column(name = "HDI_LIBPRESTATION")
        private String hdiLibprestation;
        @Column(name = "HDI_PRIX")
        private Double hdiPrix;

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 210
    Par défaut
    je suis une grosse tache ...

    la cle primaire est une composition de 3 colonnes, mais j'ai oublié de mettre 2 "@id" pour les 2 autres colonnes

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

Discussions similaires

  1. [debutant]Est-ce possible un tel resultat de requete???
    Par kenzo080 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/07/2005, 02h50
  2. creer champ avec valeur constante dans resultat de requete
    Par freejeje dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 20/05/2005, 10h52
  3. Resultats de requetes vides et pourtant !!
    Par ahage4x4 dans le forum ASP
    Réponses: 2
    Dernier message: 19/05/2005, 15h30
  4. [C#] Affichage resultat de requete dans 2 Labels
    Par kenzo080 dans le forum ASP.NET
    Réponses: 8
    Dernier message: 02/06/2004, 20h07
  5. resultat de requete jointe
    Par jjn1er dans le forum Requêtes
    Réponses: 2
    Dernier message: 19/09/2003, 10h50

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