需求是这样的:
有一个t_case表,其中里面有case_result字段,已知case_result字段保存了‘未处理’,‘待处理’、‘已处理等,分别有多条,我怎么在查询的时候,把‘已处理’的放在最后呢?
如果用sql:
SQL code
select * 
from t_case
order by handle_result='已处理' asc 就行,
但是如果用hql呢?
from TCase as tCase order by tCase.handleResult = '已处理' asc会报错:
<AST>:1:77: unexpected AST node: =
请各位大侠帮帮忙!

解决方案 »

  1.   

    select *  
    from t_case
    order by handle_result='已处理' asc 就行,你这写发俺没见过。。看看方言支持不支持你这么写吧 如果不行的话HIBERNATE也是可以使用SQL的 先使用SQL查 然后再给他添加实体
      

  2.   

    这种写法是可以的,就不知道用hql怎么实现
      

  3.   

    使用case when,检索一个假的字段A,order by A
      

  4.   


    不是不知道HQL咋实现 SQL我都没见过这种语法。。redlotus_lyn的意思是让你把 order by handle_result='已处理' asc 就行
    handle_result='已处理' 去掉 然后通过case语句把这条记录凡是不为已处理的 返回个其他结果 该结果只要能让排序正确就行