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 :

[Hibernate] Criteria sur différence entre deux dates ?


Sujet :

Hibernate Java

  1. #1
    Membre habitué Avatar de nesbla
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 220
    Points : 139
    Points
    139
    Par défaut [Hibernate] Criteria sur différence entre deux dates ?
    Bonjour,

    J'ai un pojo avec une date de début et une date de fin, je souhaiterais faire un Criteria sur la différence entre ces deux dates (différence en minutes...).

    J'ai essayé plusieurs tentatives mais rien ne fonctionne..

    Essai n°1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    criteria.add(Expression.ge("minute(mcHoroFin-mcHoroDeb)", duree));
    La je me heurte déjà au problème que je ne trouve pas de méthode avec hibernate pour calculer une différence entre deux dates en minutes, minute() ne semblant pas être bon...connaissez-vous une solution ? Ensuite deuxième interrogation sur cette solution : est-il possible de faire une opération dans un Expression ?

    Essai n°2 : Les formula

    Dans mon POJO j'ai défini un attribut "mcDuree" avec une annotation @formula :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @Formula("minute(mcHoroFin-mcHoroDeb)")
        public Integer getMcDuree() {
            return mcDuree;
        }
    il me suffirait ensuite de faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    criteria.add(Expression.ge("mcDuree", duree));
    Biensur cela ne fonctionne toujours pas, mon problème essentiel étant de trouver comment faire une soustraction en minutes entre deux dates.

    Ne connaissant pas les formula, peut être que je m'y suis mal pris (hors utilisation de la fonction minute qui ne fonctionne pas).

    Pouvez vous me conseiller ?

    Merci d'avance
    Loïc
    ··· Champion des excuses bidons ··· Je viens d'apprendre que les ventes de voitures ont encore baissé de 7% en France. Y'en a marre de ces pirates qui téléchargent les voitures sur internet !

  2. #2
    Membre habitué Avatar de nesbla
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 220
    Points : 139
    Points
    139
    Par défaut
    Bon j'ai trouvé une solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    criteria.add(Expression.sqlRestriction("DATEDIFF(n,MC_HORO_DEB,MC_HORO_FIN) >= ?", duree, Hibernate.INTEGER ));
    Le gros défaut c'est qu'on devient dépendant du type de base de données mais a priori y'a pas le choix ! (ici sql server).
    ··· Champion des excuses bidons ··· Je viens d'apprendre que les ventes de voitures ont encore baissé de 7% en France. Y'en a marre de ces pirates qui téléchargent les voitures sur internet !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/07/2006, 14h04
  2. Nombre de minutes de différence entre deux dates
    Par Oberown dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 05/05/2006, 15h41
  3. Différence entre deux dates
    Par Azharis dans le forum Access
    Réponses: 3
    Dernier message: 11/01/2006, 10h58
  4. Différence entre deux dates
    Par pittzz dans le forum Oracle
    Réponses: 5
    Dernier message: 18/07/2005, 12h24
  5. Comment obtenir la différence entre deux dates ?
    Par jbat dans le forum Langage
    Réponses: 4
    Dernier message: 02/06/2005, 09h34

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