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

时间:2009-04-19 18:13:54

标签: 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 class="Article$ArticleI18nData">
        <property name="displayName" type="string"/>
      </composite-element>

    </map>      

</class>

HQL查询如何检索由映射组件的'displayName'属性排序的所有“article”对象,并使用例如密钥映射。 'EN'?

感谢, 克里斯

1 个答案:

答案 0 :(得分:1)

向地图元素添加“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)

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