hql是面向对象的,而sql是面向表的。
嵌套查询即 select * from (select * from..)
hql不支持,会报错
如果不需要查询结果和po对象的属性做对应,只是需要结果,则可以直接用createSQLQuery代替createQuery,这样可以返回一个对象数组
session = HibernateUtil.getSessionFactory().getCurrentSession();Transaction tx = session.beginTransaction();
tx.begin();
Query pm = session.createSQLQuery(querySql.toString());
list = pm.list();
tx.commit();
hibernate中直接使用sql update 的方式同理
Query query= session.createSQLQuery(sql); query.executeUpdate(); 这样就可以用hibernate执行sql语句了 没有任何障碍。 我们用hql就是利用它的简单 便捷 如果为了利用它我们花更多的精力去转sql语句岂不是自找麻烦吗? hibernate的工作设计人员为我们考虑了这一点,所以我们就得以用最简单的方式执行sql了~~