ssh使用hibernate进行sql查询问题

我在项目里定义了一个pojo类,是各个单位得分明细表,是这样的:
数据表的内容差不多是这样的。
日期 部门 得分 总分
2014-1 菊花小学 8 10
2014-2 春春小学 9 10

定义的实体类:

public class Score_detail {

private String id;
private String barcode;
private String dept;
private String noteb;
private int df;
private int kf;

//这里省略了种个get与set方法
}
}

然后就是映射文件:Score_detail.hbm.xml,spring配置,这些都没问题。

但是,我想用这条语句来进行查询:
String hql ="select (sum(kf)- sum(df))/ sum(kf)*10000 ,dept from Score_detail";
String mywhe =" where barcode='"+barcode+"' group by dept ";
hql += mywhe;
list = this.getHibernateTemplate().find(hql);

查询是可以的,不过呢,console是这样说的:
HQL: select (sum(kf)- sum(df))/ sum(kf)*10000 ,dept from com.pojo.Score_detail where barcode='201403151035' group by dept
SQL: select (sum(score_deta0_.kf)-sum(score_deta0_.df))/sum(score_deta0_.kf)*10000 as col_0_0_, score_deta0_.dept as col_1_0_ from score_detail score_deta0_ where score_deta0_.barcode='201403151035' group by score_deta0_.dept

如果我直接用上面组合成的hql语句在数据库中进行查询,得到的结果是这样的:
部门 总得分
菊花小学 98%
春春小学 99%

现在问题就是,在hibernate是转化成是上面sql语句,后面的 as col_0_0_ 是什么东西啊,我都没指定过。我现在只想要两个字段的数据(部门、总得分),然后在前台用list遍历出来,请问该怎么做?

as col_0_0_这是hibernate内部框架实现,也就是hibernate.dialect。他会把你hql转换sql,主要是根据不同数据库做变化,省去你修改的麻烦。

List<Score_detail> sdList = (List<Score_detail>) getSession().createQuery(hql).list();

这样查询出来,然后遍历list,后用sd.getDep...就能取得你要的字段。追问

怎样遍历list啊,我用for(Score_detail n : list){

System.out.println(n);

},但是提示错 误。

追答

你不会struts标签?

追问

不太会,况且,我是遍历数组,用来拼json数组的。

温馨提示:内容为网友见解,仅供参考
无其他回答

ssh框架中用HibernateDaoSupport的对象查询sql数据库时老是提示:java...
在dwr+ssh中,1.在IoManAction里面写入private IoManService ioManService;之前要确保spring里面写好:<bean id="typhoonAction" class="com.hjkj.action.infoAna.topicmap.TyphoonAction" scope="prototype"> <property name="ioManAction"> <ref bean="ioManAction"\/> <\/property> <\/bean>dwr ...

SSH查询数据库时抛出SQLGrammarException: could not execute query异常...
STUDENTLIS0_"."FK_STUDENTLISTS_ID 是你那个级联的问题,<column name="fk_StudentLists_id"\/> 看看数据库用有没有这个字段名有没有错,它是对应到数据库字段的 兄弟不要被几对几给搞晕了,根据你的设计意图fk_StudentLists_id这个字段是在StudentList表中,这个表中没有fk_StudentLists_id,Stu...

ssh2中hibernate使用时,在控制台有一条sql语句会连续输出两次是什么情况...
可能是你哪里设置有写问题吧,比如sql都打印,然后又要求sql debug,貌似hibernate把执行的sql转化成hql,在控制台也打印一遍

ssh框架控制台打印的sql语句多了个0之前在另外的电脑上可以跑起来_百度...
这个是Hiberante 映射的sql语句所以有0,是没有问题的

...column_id_used] from sys.tables这句sql语句
Hibernate就把指定的数据库中所对应的表封装成实体类和映射文件了,直接写hql语句就可以了,如:hql="from User";User 就是要查询的表,from User就相当于sql语句select * from User查询里面的字段就可以加上User表所对应的字段名称就可以了,hql查询的是数据库表所对应的实体类,和里面的属性,select user...

...column_id_used] from sys.tables这句sql语句
回答:Hibernate就把指定的数据库中所对应的表封装成实体类和映射文件了,直接写hql语句就可以了,如:hql="from User";User 就是要查询的表,from User就相当于sql语句select * from User查询里面的字段就可以加上User表所对应的字段名称就可以了,hql查询的是数据库表所对应的实体类,和里面的属性,select...

SSH 框架+ orcal怎么用sql实现页面查询分页?
实现分页查询 param offset 开始索引 start:0 param length 查询长度 return \/ public List getListForPage4SQL(final String sql, final int offset, final int length) { List retList = getHibernateTemplate().executeFind(new HibernateCallback() { public Object doInHibernate(Session session) ...

ssh架构问题,在执行sql语句是出现如下错误
Customer表指向了你com.cdgl.app.entity.Customer个类,应该是个po吧,Customer换成小写试试

求救啊,我的SSH框架,hibernate可以查询和插入,就是不能删除和更新啊,删...
看model的配置文件里面的属生设置对了没有,如果不行的,你就设个cascade=''true'',就可以了,

SSH开发遇到的问题For input string: "id"
首先我要批评你,你写的真烂,你用SSH ,struts1 ActionForm用来封装参数你不用,偏要request.getParameter();spring集成hibernate以后可以用spring封装好的方法执行查询,你也不用,偏要自己获取Session查,I 服了 U 但是这些都不是你致命的问题,错误来至于下面这两行,第一行是对的,在请求中获取sid...

相似回答