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

Hibernate Java Discussion :

[HQL] recuperer l'objet avec la date la plus recente


Sujet :

Hibernate Java

Vue hybride

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 262
    Par défaut [HQL] recuperer l'objet avec la date la plus recente
    bonjour je veux faire une requete et obtenir l'objet le plus recent, c'est sans doute tout bete mais je debute en hql :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "from EtatContenu "
    mon objet EtatContenu contient un attribut "DernierConsultation" (DateTime) et donc je voudrais obtenir l'EtatContenu ayant l'attribut DernierConsultation le plus recent.

    ce que je sais faire pour l'instant c'est un order by DernierConsultation et puis de recuperer le premier. Mais bon je prefere que ma requete me renvoie juste le bonne objet (sans faore un top 1)

  2. #2
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 149
    Par défaut
    Citation Envoyé par snopims Voir le message
    bonjour je veux faire une requete et obtenir l'objet le plus recent, c'est sans doute tout bete mais je debute en hql :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "from EtatContenu "
    mon objet EtatContenu contient un attribut "DernierConsultation" (DateTime) et donc je voudrais obtenir l'EtatContenu ayant l'attribut DernierConsultation le plus recent.

    ce que je sais faire pour l'instant c'est un order by DernierConsultation et puis de recuperer le premier. Mais bon je prefere que ma requete me renvoie juste le bonne objet (sans faore un top 1)
    Bonjour,

    J'essaie aussi de faire ça et je débute aussi.
    Disons que pour récupérer la l'objet le plus récent serait de faire un select distinct max(DateTime) etc .. from EtatContenu where condition group by les_champs_sans_DateTime. Enfin ce que j'ai dit c'est en SQLQuery c'est par là que je creuse.

  3. #3
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Bonjour,

    Vous avez essayé ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "from EtatContenu where DernierConsultation =(select max(DernierConsultation) from EtatContenu)"
    = ou in à essayer

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 149
    Par défaut
    Citation Envoyé par Fench Voir le message
    Bonjour,

    Vous avez essayé ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "from EtatContenu where DernierConsultation =(select max(DernierConsultation) from EtatContenu)"
    = ou in à essayer
    Salut Fench, c'est tout à fait ce que j'ai fait dans la requête !
    ça s'exécute bien sous un requêteur mais ça merde quand je lance:

    listEtatACAV=session.createQuery("from MIFetatACAV").list();

  5. #5
    Membre expérimenté Avatar de mOuLi
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2008
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2008
    Messages : 170
    Par défaut
    Et comme ceci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Query q = session.createQuery("from EtatContenu etat order by etat.DernierConsultation desc");
    q.setMaxResults(1);
    List resultats = q.list();
    Et normalement la liste ne doit contenir qu'un seul élément, c'est certainement plus performant que l'utilisation de la requête imbriquée.

  6. #6
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Bonjour,

    Il était écrit dans la question du post:
    ce que je sais faire pour l'instant c'est un order by DernierConsultation et puis de recuperer le premier. Mais bon je prefere que ma requete me renvoie juste le bonne objet (sans faore un top 1)
    De rien merci

Discussions similaires

  1. trier differents types d'objets avec leur date
    Par chester89 dans le forum Général Java
    Réponses: 2
    Dernier message: 25/04/2014, 10h05
  2. select avec group by sur la date la plus recente
    Par maysa dans le forum Requêtes
    Réponses: 4
    Dernier message: 15/07/2010, 12h02
  3. Réponses: 1
    Dernier message: 07/07/2009, 14h45
  4. Réponses: 8
    Dernier message: 12/11/2008, 17h07
  5. [BO 5.1.8] Objet avec la date courante
    Par ninou58 dans le forum Designer
    Réponses: 15
    Dernier message: 09/06/2008, 08h48

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