Hibernate 执行原生sql

来源:互联网 发布:2016淘宝屏蔽搜索排名 编辑:程序博客网 时间:2024/06/10 08:49

1.带有聚集函数的

String sql = " select sum(t.HITCOUNT) countHitCount from keywordhit_view t";

Query query = this.getSession().createSQLQuery(sql).addScalar("countHitCount",Hibernate.LONG)  //转换类型,按DB中的type转

.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); //返回一个map,KEY:为DB中名称一致(大小写一致)

List  list = query.list();

Map map = (Map) list.get(0);

map.get("countHitCount");


2.普通的

String sql = " select t.title TITLE,to_char(t.insert_time,'yyyy-mm-dd hh24:mi:ss')  TIME, t.clicks NUM from post_clicks_trend t , post_report_title a" +
" where t.title=a.title order by  t.title, t.insert_time " ;
Query query = this.getSession().createSQLQuery(sql).addScalar("TITLE",Hibernate.STRING)
.addScalar("TIME", Hibernate.STRING).addScalar("NUM", Hibernate.INTEGER)
.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); //返回一个map,KEY:为DB中名称一致(大小写一致)
List  list = query.list();