【问题标题】:HQL: How to sort list of objects on property of mapped composite elementHQL:如何根据映射的复合元素的属性对对象列表进行排序
【发布时间】:2009-04-19 18:13:53
【问题描述】:

我有一个带有组件图的对象:

<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' 属性排序的所有“文章”对象,使用键映射,例如'EN'?

谢谢, 克里斯

【问题讨论】:

    标签: java hibernate sorting hql


    【解决方案1】:

    为地图元素添加“order-by”属性:

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

    属性的值是数据库列名。

    见:

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

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

    【讨论】:

    • 这只会对每篇文章的地图条目进行排序,而不是文章对象本身的顺序。
    猜你喜欢
    • 1970-01-01
    • 2022-01-05
    • 2022-01-11
    • 1970-01-01
    相关资源
    最近更新 更多