1、sql语句面向数据库表查询;hql语句面向对象查询。
2、hql语句 : from 后面跟的 类名+类对象 where 后 用 对象的属性做条件。
3、sql语句 : from 后面跟的是表名 where 后 用表中字段做条件查询。
4、在Hibernate中使用查询时,一般使用Hql查询语句。
5、HQL(Hibernate Query Language),即Hibernate的查询语言跟SQL非常相像。不过HQL与SQL的最根本的区别,就是它是面向对象的。
6、在Hibernate中使用查询时,一般使用Hql查询语句。
另:
HQL(Hibernate Query Language),即Hibernate的查询语言跟SQL非常相像。不过HQL与SQL的最根本的区别,就是它是面向对象的。
使用HQL时需要注意以下几点:
1、大小写敏感
因为HQL是面向对象的,而对象类的名称和属性都是大小写敏感的,所以HQL是大小写敏感的。
HQL语句:from Cat as cat where cat.id > 1;与from Cat as cat where cat.ID > 1;是不一样的,这点与SQL不同。
2、from子句
from Cat,该句返回Cat对象实例,开发人员也可以给其加上别名,eg. from Cat as cat,对于多表查询的情况,可参考如下:
from Cat as cat, Dog as dog
其它方面都与SQL类似,在此不再赘述。
现在大家对于HQL和SQL的区别表现在几点,HQL的使用要注意哪些的内容应该都清楚了吧,希望大家阅读完这篇文章能有所收获。
补充:
1、org.hibernate.hql.ast.QuerySyntaxException: is not mapped解决办法
1、首先要检查的就是不是表名,这个应该大家都知道,hql语句对大小写很严格,因此请注意大小写;你的hql语句中的from是实体类而不是表名;
2、你的hibernate配置文件中没有加入相应的映射文件<mapping resource=" " />;
3、如果上面两方面检查了都没问题,但是还有错,那应该就是hql语句有错了,检查一下,放到数据库的sql运行窗口下运行一遍,可能就是因为一个空格或者一个引号而报错折腾一两天。因此,请仔细。