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了~~

评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!