返回介绍

排序

发布于 2025-04-21 21:42:14 字数 1302 浏览 0 评论 0 收藏

可以使用 SQL 风格的"order by"子句控制结果输出的顺序,这应该不会令你感到惊讶。前面几章我们曾经简单提到过这一点,其工作原理正如你所料想的那样。可以使用返回对象的任何属性来建立排序,也可以使用多个属性来建立子排序(subsort),以便在第一个属性值相同时能够继续以其他属性值对其结果进行排序。

应该怎么做

排序非常简单:列出想要用来对查询结果进行排序的值。和往常一样,SQL 使用数据库表的字段,而 HQL 使用对象的属性。对于例 9-13 来说,我们更新了例 9-10 的查询,让它以倒序的字母顺序显示结果。

注意:和 SQL 一样,递增的顺序使用"asc",而递减的顺序使用"desc"。

例 9-13:在 Track.hbm.xml 中加点新东西,按标题倒序对结果进行排序

<query name="com.oreilly.hh.tracksNoLongerThan">

<![CDATA[

select track.id, track.title from com.oreilly.hh.Track as track

where track.playTime<=:length

order by track.title desc

]]>

</query>

运行这个示例的输出结果如你所料(如例 9-14 所示)。

例 9-14:以倒序的字母顺序列出的标题和 ID

%ant qtest

Buildfile:build.xml

prepare:

[copy]Copying 1 file to/Users/jim/Documents/Work/OReilly/svn_hibernate

/current/examples/ch09/classes

usertypes:

……

qtest:

[java]Track:Video Killed the Radio Star[ID=2]

[java]Track:Test Tone 1[ID=7]

[java]Track:Russian Trance[ID=1]

[java]Track:Never Turn Your Back on Mother Earth[ID=12]

[java]Track:Motherless Child[ID=13]

[java]Track:In a Manner of Speaking[ID=9]

[java]Track:Gone[ID=11]

BUILD SUCCESSFUL

Total time:9 seconds


发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。