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 :

Projection multiple sur une table


Sujet :

Hibernate Java

  1. #1
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 232
    Points : 1 898
    Points
    1 898
    Par défaut Projection multiple sur une table
    Bonjour,

    Pour un enregistrement je récupère la date (Object Date de Firebird) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Criteria criteria = session.createCriteria(BaseEngin.class);
    criteria.add(Restrictions.eq(BaseEngin.PROP_ID, idEngin));
    criteria.setProjection(Projections.property(BaseEngin.PROP_DATE_E));
            
    List<java.util.Date> valeur = (List<java.util.Date>) criteria.uniqueResult();
    Ensuite je récupère l'heure (Object Time de Firebird) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Criteria criteria = session.createCriteria(BaseEngin.class);
    criteria.add(Restrictions.eq(BaseEngin.PROP_ID, idEngin));
     criteria.setProjection(Projections.property(BaseEngin.PROP_HEURE_E));
             
    List<java.util.Date> valeur = (List<java.util.Date>) criteria.uniqueResult();
    Mais je n'arrive pas à récupérer les 2 valeurs lors d'une même requête comme par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Criteria criteria = session.createCriteria(BaseEngin.class);
    criteria.add(Restrictions.eq(BaseEngin.PROP_ID, idEngin));
     criteria.setProjection(Projections.property(BaseEngin.PROP_DATE_E));
    criteria.setProjection(Projections.property(BaseEngin.PROP_HEURE_E));
             
    List<java.sql.Date> valeur = (List<java.sql.Date>) criteria.list();
    ... car dans ce cas je n'ai que la projection pour l'objet Time (BaseEngin.PROP_HEURE_E).

    Comment faire cela ?

    Merci.

  2. #2
    Membre éprouvé Avatar de Gardyen
    Homme Profil pro
    Bio informaticien
    Inscrit en
    Août 2005
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bio informaticien

    Informations forums :
    Inscription : Août 2005
    Messages : 637
    Points : 1 050
    Points
    1 050
    Par défaut
    il te suffit de créer une liste de projections !

    dans ton code tu écrasais la projection définie précédemment

    fait plutôt:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    criteria.setProjection(
      Projections.projectionList()
      .add(Projections.property(BaseEngin.PROP_DATE_E))
      .add(Projections.property(BaseEngin.PROP_HEURE_E))
    );

  3. #3
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 232
    Points : 1 898
    Points
    1 898
    Par défaut
    Citation Envoyé par Gardyen Voir le message
    il te suffit de créer une liste de projections !

    dans ton code tu écrasais la projection définie précédemment

    fait plutôt:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    criteria.setProjection(
      Projections.projectionList()
      .add(Projections.property(BaseEngin.PROP_DATE_E))
      .add(Projections.property(BaseEngin.PROP_HEURE_E))
    );


    Merci.

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

Discussions similaires

  1. Jointures multiples sur une table
    Par allstar dans le forum Langage SQL
    Réponses: 7
    Dernier message: 06/11/2012, 11h48
  2. [WD15] Trie multiple sur une table
    Par Nodoka dans le forum WinDev
    Réponses: 1
    Dernier message: 20/08/2010, 16h32
  3. Accès multiple sur une même table
    Par ravaid dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 18/04/2008, 14h09
  4. Accès multiple sur une même table
    Par ravaid dans le forum Développement
    Réponses: 3
    Dernier message: 18/04/2008, 13h27
  5. relations multiples sur une table
    Par lapuce dans le forum Modélisation
    Réponses: 2
    Dernier message: 18/07/2007, 17h58

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