请问我用hibernate的SQLQuery查询数据库里的一个字段onlineDuration在某个时间段的总数

2025-02-11 20:16:17
推荐回答(1个)
回答1:

在某些场合下,我们可能想使用HIBERNATE的框架提供的SQL查询接口,但是,由于实体没有做映射,HIBERNATE不能把结果集转换成你想要的List,本文讨论如何在这种情况下让HIBERNATE直接返回你想的结果。下面是简单的查询封装方法

Java代码
public List findObjectBySql(String queryString,Class pojoClass){
//使用SQL构造查询对象,此SQL是可以被JDBC接受的SQL,如SELECT * FROM XXX_TABLE
Query query = this.getSession().createSQLQuery(queryString);
//设置结果集转换器,这是本文重点所在
query.setResultTransformer(new EscColumnToBean(pojoClass));
//返回查询结果
return query.list();