Java HQL:如何对映射复合元素的属性上的对象列表进行排序

Java HQL:如何对映射复合元素的属性上的对象列表进行排序,java,hibernate,sorting,hql,Java,Hibernate,Sorting,Hql,我有一个带有组件映射的对象: <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 c

我有一个带有组件映射的对象:

<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>

...
HQL查询如何检索由映射组件的“displayName”属性排序的所有“article”对象,并使用例如“EN”的键进行映射

谢谢, chris

向map元素添加“order by”属性:

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

..
属性的值是数据库列名

见:

  • Hibernate文档-6.2。集合映射(docs.jboss.org/hibernate/stable/core/reference/en/html/collections-mapping.html)
  • Hibernate文档-6.3.1。已排序的集合(docs.jboss.org/hibernate/stable/core/reference/en/html/collections-advancedmappings.html)

抱歉,我是新用户,不允许添加真正的超链接。

这只会对每篇文章的地图条目进行排序,而不会对文章对象本身进行排序。