[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:
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:
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.