请问我用hibernate的SQLQuery查询数据库里的一个字段onlineDuration在某个时间段的总数
发布网友
发布时间:2022-04-07 16:23
我来回答
共1个回答
热心网友
时间:2022-04-07 17:52
在某些场合下,我们可能想使用HIBERNATE的框架提供的SQL查询接口,但是,由于实体没有做映射,HIBERNATE不能把结果集转换成你想要的List<POJO>,本文讨论如何在这种情况下让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();