【问题标题】:Hibernate Criteria order by with two columnHibernate Criteria order by 两列
【发布时间】:2019-10-25 05:52:12
【问题描述】:

我有一张带有wingNo 和FlatNo 的桌子。

WingNo          FlatNo
A                001
A                002
B                1
A                101

我需要按升序按 WingNo 和 FlatNo 订购。其中 WingNo 和 FlatNo 都是字符串。 结果应该是:-

WingNo         FlatNo
A               001
A               002
A               101
B               1


criteria.addOrder(Order.asc("wingNo"));
criteria.addOrder(Order.asc("flatNo"));

如何使用将字符串字段视为数字的顺序?

【问题讨论】:

    标签: hibernate hibernate-criteria


    【解决方案1】:

    如果FlatNo 字段是数据库表中的固定宽度文本或varchar 字段,那么您当前的排序逻辑应该已经为您提供了您想要的行为。这是因为零填充的固定宽度数字字符串按字典顺序排序与基础数字相同。

    如果FlatNo 列没有固定宽度和/或可能缺少左零填充,那么您将不得不做更多的工作。如果您有这种长期需求,将FlatNo 设为数字列可能会更容易。

    【讨论】:

      猜你喜欢
      • 2013-11-11
      • 2023-03-23
      • 2010-12-19
      • 1970-01-01
      • 2012-01-19
      • 1970-01-01
      • 2016-03-09
      • 1970-01-01
      • 2015-12-12
      相关资源
      最近更新 更多