hql 和sql 的区别,解决hql 嵌套的问题
2015-07-16 22:22
344 查看
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 的方式同理
嵌套查询即 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了~~
相关文章推荐
- 数据库事务隔离级别与锁
- postgresql导出表结构
- SQL server 数据库基本知识
- 【mongodb笔记】windows平台下以命令方式启动
- Redis基本数据类型--string
- oracle用户和表空间
- mysql或则oracle的declare可以放在操作语句的后面吗?
- 创建数据库
- win7下安装MySQL
- 58同城Mysql数据库设计原则(转)
- PB与各种数据库连接
- 通过安装包暗转mysql时,第一次登陆出现 ERROR 1045 (28000): Access denied for user解决方法
- MySQL 记录的操作
- Redis介绍以及安装
- Oracle实践--PL/SQL表分区的基础
- mysql命令
- Oracle库Delete删除千万以上普通堆表数据的方法
- Windows7下MySQL5.5.20免安装版的配置
- Hive sql语法详解
- [web安全] SQL注入之SQLServer