hibernate执行SQL语句

在开发的过程中,使用hibernate查询不是万能的,有时候需要自己写一个SQL,那么hibernate如何执行自己写的SQL呢?

1、查询的不是对象的字段

String sql = "select itemid,count(*) as cnt from v_dev where 1=1 group by itemid";
this.getSession().createQuery(sql)
.addScalar("itemid",Hibernate.STRING)
.addScalar("cnt",Hibernate.INTEGER).list();

 2、查询的是对象的字段

String sql = "select top 1 {e.*} from TABLE_NAME e order by e.updatetime desc";
this.getSession.createSQLQuery(sql).addEntity("e",JAVABEAN.class).list();

备注:

1、{e.*}这个“中括号”是不能少的,否则就报错;

2、addEntity("e",JAVABEAN.class)中的e与TABLE_NAME别名一直,后面是对应的Model类

猜你喜欢

转载自hbiao68.iteye.com/blog/1833622