首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

Hql语句转换有关问题

2012-07-25 
Hql语句转换问题。我项目架构是SSH我用Ireport 制作报表,并使用Struts2 的List集合作为数据源要排序成下面:

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还识别不了

热点排行