Har*_*rry 3 hibernate criteria formula
嗨在数据库中,我们有一个PRSN_ADDRESS表,它有许多地址.用户在网格中显示这些地址.要求是首先显示与此用户的状态关联的地址,然后显示所有其他状态.
例如,假设该表有10条记录,其中5条地址的状态为马里兰州,2条来自PA,3条来自新泽西州.现在,如果用户与马里兰州相关联,我们需要显示所有10个地址,但马里兰州地址应该显示在前五个地址中,然后其他5个地址显示在任何顺序中.
我们正在使用Hibernate Criteria.我还没有参加过Formulas,也不确定这是否有助于解决问题.如果有人能指出我正确的方向,那将是很棒的.我很感激.
谢谢
哈里什
您可以按条件价值订购......
(NHibernate方式,有人知道Hibernate中的等价物吗?)
.AddOrder(Order.Asc(
Projections.Conditional(
Restrictions.EqProperty("addr.state", "user.state"), Projections.Constant(0), Projections.Constant(1))))
.AddOrder(Order.Asc("addr.state"))
Run Code Online (Sandbox Code Playgroud)
转换为......
order by
case when addr.state = user.state then 0 else 1 end,
addr.state
Run Code Online (Sandbox Code Playgroud)