与 PostgreSQL DB 一起使用的 Hibernate 在按列排序 desc 时将空值置于高于非空值的位置。
SQL99 标准提供关键字“NULLS LAST”来声明空值应该低于非空值。
使用 Hibernate 的 Criteria API 可以实现“NULLS LAST”行为吗?
原文由 mgamer 发布,翻译遵循 CC BY-SA 4.0 许可协议
与 PostgreSQL DB 一起使用的 Hibernate 在按列排序 desc 时将空值置于高于非空值的位置。
SQL99 标准提供关键字“NULLS LAST”来声明空值应该低于非空值。
使用 Hibernate 的 Criteria API 可以实现“NULLS LAST”行为吗?
原文由 mgamer 发布,翻译遵循 CC BY-SA 4.0 许可协议
如前所述,此功能已在 Hibernate 4.2.x 和 4.3.x 版本中实现。
它可以用作例如:
Criteria criteria = ...;
criteria.addOrder( Order.desc( "name" ).nulls(NullPrecedence.FIRST) );
Hibernate v4.3 javadocs 在 这里 没有那么遗漏。
原文由 José Andias 发布,翻译遵循 CC BY-SA 3.0 许可协议
8 回答6.6k 阅读
4 回答724 阅读✓ 已解决
2 回答3.4k 阅读
3 回答1.9k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
1 回答2.1k 阅读✓ 已解决
1 回答975 阅读✓ 已解决
鉴于 HHH-465 尚未修复并且由于 Steve Ebersole 给出的原因在不久的将来也不会得到修复,您最好的选择是使用
CustomNullsFirstInterceptor
全局或特定地附加到该问题改变 SQL 语句。我将其发布在下面供读者使用(感谢 Emilio Dolce):