2009-04-19 7 views
3

Liste der Objekte auf Eigenschaft abgebildet Verbundelement zu sortieren habe ich ein Objekt mit einer Karte von Komponenten:HQL: Wie

<class name="Article" table="articles"> 
... 
    <map name="i18nData" table="articles_i18n"> 
     <key column="id" not-null="true"/> 
     <map-key column="language" type="string"/> 

     <composite-element class="Article$ArticleI18nData"> 
     <property name="displayName" type="string"/> 
     </composite-element> 

    </map>  

</class> 

Wie würde eine HQL Abfrage aussehen wie alle „Artikel“ Objekte geordnet abrufen die Eigenschaft 'displayName' der zugeordneten Komponente, die mit einem Schlüssel für z "EN"?

Dank, chris

Antwort

1

eine "Order-by" -Attribut auf der Karte Element hinzufügen:

<map name="i18nData" table="articles_i18n" order-by="name asc"> 
    .. 
</map> 

Wert der Datenbank Spaltennamen Attribut sind.

See:

  • Hibernate Dokumentation - 6.2. Sammlungszuordnungen (docs.jboss.org/hibernate/stable/core/reference/en/html/collections-mapping.html)
  • Hibernate-Dokumentation - 6.3.1. Sortiert Sammlungen (docs.jboss.org/hibernate/stable/core/reference/en/html/collections-advancedmappings.html)

Leider Ich bin ein neuer Benutzer und nicht erlaubt echte Hyperlinks hinzufügen.

+0

Dies würde nur die Karteneinträge jedes Artikels bestellen, aber nicht die Reihenfolge der Artikelobjekte selbst. – Chris