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

NHibernate Discussion :

[NHibernate] Trier un bag de composite-element


Sujet :

NHibernate

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 57
    Par défaut [NHibernate] Trier un bag de composite-element
    Bonjour !

    Voici ma problématique,

    - Base de données (que je simplifie volontairement) :

    PERIMETRE (PERIMETRE_ID, DISCRIMINANT_PERIMETRE)
    PERIMETRE_POLYGONE (ID_PERIMETRE, LATITUDE, LONGITUDE, ORDRE)
    PERIMETRE_REPERAGE (ID_PERIMETRE, BORNE_INF, BORNE_SUP, SENS)

    - Modèle de classe,

    Un classe mère Perimetre et 2 classes filles PerimetreReperage et PerimetrePolygone. Ces 2 dernières contiennent une propriété :

    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
     
            /// <summary>
            /// Repérages délimitant le périmètre
            /// </summary>
            private IList _listeReperages = new ArrayList();
     
            public IList ListeReperages
            {
                get
                {
                    return _listeReperages;
     
                }
                set { _listeReperages = value; }
            }
    - Mapping,

    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
     
    <class name="Perimetre" table="PERIMETRE" discriminator-value="0">
        <id name="_uniqueID" type="Int64" column="PERIMETRE_ID" unsaved-value="0" access="field">
          <generator class="assigned"/>
        </id>
        <discriminator column="DISCRIMINANT_PERIMETRE" type="System.Int32" force="true"/>
        <subclass name="PerimetreReperage" discriminator-value="1">
          <bag name="ListeReperages" table="PERIMETRE_REPERAGE" lazy="false" cascade="none" fetch="select">
            <key column="ID_PERIMETRE"></key>
            <composite-element class="Reperage">
              <nested-composite-element name="BorneInf" class="Borne">
                <property name="Borne" column="BORNE_INF" type="System.Double"/>
              </nested-composite-element>
              <nested-composite-element name="BorneSup" class="Borne">
                <property name="Borne" column="BORNE_SUP" type="System.Double"/>
              </nested-composite-element>
              <property name="Sens" column="SENS" type="SensEnum"/>
            </composite-element>
          </bag>
        </subclass>
        <subclass name="PerimetrePolygone" discriminator-value="2">
          <bag name="ListeReperages" table="PERIMETRE_POLYGONE" lazy="false" cascade="none" fetch="select">
            <key column="ID_PERIMETRE"></key>
            <composite-element class="ReperagePonctuelCardinalPolygone">
               <property name="Latitude" column="LATITUDE" type="System.Double"/>
               <property name="Longitude" column="LONGITUDE" type="System.Double"/>
            </composite-element>
          </bag>
        </subclass >
      </class>
    J'aimerais pouvoir trier mon second bag directement dans le mapping, car un polygone est une suite de points ordonnées. Ce tri est donné en base grâce à la colonne ORDRE.

    Je vous remercie d'avance si vous avez des pistes à me soumettre.

  2. #2
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 273
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 273
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
          <bag name="ListeReperages" table="PERIMETRE_POLYGONE" lazy="false" cascade="none" fetch="select" order-by="ORDRE asc">
            <key column="ID_PERIMETRE"></key>
            <composite-element class="ReperagePonctuelCardinalPolygone">
               <property name="Latitude" column="LATITUDE" type="System.Double"/>
               <property name="Longitude" column="LONGITUDE" type="System.Double"/>
            </composite-element>
          </bag>
    Ca devrait fonctionner.

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 57
    Par défaut
    Merci, cela fonctionne bien. J'étais persuadé que ça n'était pas possible étant donné que la classe de l'instance construite avec le composite-element ne possède pas d'attribut mappé sur ORDRE. C'est donc un pur tri SQL et non HQL.

  4. #4
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 273
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 273
    Par défaut
    Citation Envoyé par Manson Voir le message
    C'est donc un pur tri SQL et non HQL.
    Oui et heureusement pour les perfs !

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

Discussions similaires

  1. [NHibernate] Trier un bag de composite-element
    Par Manson dans le forum Hibernate
    Réponses: 0
    Dernier message: 06/07/2010, 15h25
  2. trier les elements HashMap
    Par hamma2 dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 29/04/2007, 20h42
  3. [D7] [BD] Trier le premier element de la BD!
    Par melles dans le forum Bases de données
    Réponses: 7
    Dernier message: 08/03/2007, 10h05
  4. [HIBERNATE] Table de jointure & <composite-element>
    Par miloo dans le forum Hibernate
    Réponses: 1
    Dernier message: 27/06/2006, 11h42
  5. trier un tableau et compter des elements du tableau
    Par remi51 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 17/06/2002, 16h51

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