特定状态的 hibernate 条件顺序

标签 hibernate criteria formula

嗨 在数据库中,我们有一个 PRSN_ADDRESS 表,其中包含许多地址。在网格中向用户显示这些地址。要求是先显示与该用户状态相关的地址,然后再显示所有其他状态。

例如,假设该表有 10 条记录,其中 5 个地址的州为马里兰州,2 条来自宾夕法尼亚州,3 条来自新泽西州。现在,如果用户与马里兰州相关联,我们需要显示所有 10 个地址,但马里兰州地址应显示在前 5 个中,然后按任意顺序显示其他 5 个。

我们正在使用 hibernate 标准。我没有研究过公式,不确定这是否有助于解决问题。如果有人能指出我正确的方向,那就太好了。我很感激。

谢谢

哈里什

最佳答案

您可以按条件值排序...

(NHibernate 方式,有人知道 Hibernate 中的等价物吗?)

.AddOrder(Order.Asc(
    Projections.Conditional(
         Restrictions.EqProperty("addr.state", "user.state"), Projections.Constant(0), Projections.Constant(1))))
.AddOrder(Order.Asc("addr.state"))

翻译成...

order by 
    case when addr.state = user.state then 0 else 1 end,
    addr.state

关于特定状态的 hibernate 条件顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4510810/

相关文章:

java - Hibernate:搜索包含一组枚举中的值的实体

excel vba根据我的表格大小自动计算公式

jquery - 如何使用公式设置动画scrollTop 和scrollLeft 值?

HibernateJpaVendorAdapter 的generateDdl 不会更改表

mysql - HQL:计算集合中的空值

NHibernate,当条件有一个分组时获取行数

algorithm - 如何对我的网络应用程序的帖子进行排名?

Hibernate native 查询返回整数列表不起作用

java - hibernate 中的 TypeMisMatchException

java - 有什么方法可以像这样使用 JPA2 标准 API 进行 Join 吗?