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.