当前位置: 代码迷 >> J2EE >> Hql语句转换有关问题
  详细解决方案

Hql语句转换有关问题

热度:44   发布时间:2016-04-22 01:09:06.0
Hql语句转换问题。
我项目架构是SSH
我用Ireport 制作报表,并使用Struts2 的List集合作为数据源



要排序成下面:
Java code
60米60米60米800米800米800米5000米跳高


 单独访问这个list集合,是已经排序了的。

但是iReport报表中访问的时候,依然是没有排序的呢
Java code
public List<JianXiangView> listJianXiangView(Long userId) {        // TODO Auto-generated method stub        return this.getHibernateTemplate().find("select id.athleteName,id.itemName,id.fullName,id.athleteId from JianXiangView " +                "where id.userId = '"+userId+"'");    }    


Hql语句如上所示。

Sql语句排序如下,

直接访问list集合是排序了的!

ORDER BY CASE WHEN IsNumeric(replace(dbo.item.name, '米', '')) 
  = 1 THEN Cast(replace(dbo.item.name, '米', '') AS int) ELSE 2147483647 END

现在是 上面的Sql语句可以改成Hql语句不?

------解决方案--------------------
编辑 crosstab properties 的 row groups或column groups,里面有order下拉框选项 


sql转hql 其实也简单

一个是对象模型,一个是关系模型

hql里面使用对象导航~
------解决方案--------------------
你这个估计是因为hibernate识别不了你的hql。既然你用到了IsNumberic和replace,你就用sql吧。session.createSqlQuery
------解决方案--------------------
对啊 许多sql 关键字 hql还识别不了
  相关解决方案