HQL语句相关

HQL语句相关的点滴知识

1,HQL是在 hibernate 中使用的数据库查询语言,类似SQL SERVER中的SQL语言,

2,HQL区分大小写;

3,HQL中所有的都是用对象来操作,没有用表名,如HQL中输入的 from 实体名,

4, HQL语句,“from 实体名” 对应SQL中的 “select * from 表名”

5,HQL语句,“from 实体名 别名 order by 别名.实体属性名 asc|desc” 
   对应的SQL语句 “select * from 表名 别名 order by 别名.表字段名 asc|desc”

6, HQL语句,“from 实体名 别名 where 别名.实体属性名 比较条件” 
   对应的SQL语句 “select * from 表名 别名 where 别名.表字段名 比较条件”

7, HQL语句,“from 实体名 别名 where 别名.实体属性名 比较条件 order by 别名.实体属性名 asc|desc” 
   对应的SQL语句 “select * from 表名 别名 where 别名.表字段名 比较条件 order by 别名.表字段名 asc|desc”

8, HQL语句,“select 别名.实体属性名1, 别名.实体属性名2 [,...] from 实体名 别名” 
   对应的SQL语句 “select 别名.字段1, 别名.字段2 [,...] from 表名 别名”

9, HQL语句,“select 别名.实体属性名1,别名.实体属性名2 [,...] from 实体名 别名 where 别名.实体属性名 比较条件” 
   对应的SQL语句 “select 别名.字段1, 别名.字段2 [,...] from 表名 别名 where 别名.表字段名 比较条件”

10, HQL语句,“select 别名.实体属性名1,别名.实体属性名2 [,...] from 实体名 别名 where 别名.实体属性名 比较条件 order by 别名.实体属性名 asc|desc” 
   对应的SQL语句 “select 别名.字段1, 别名.字段2 [,...] from 表名 别名 where 别名.表字段名 比较条件 order by 别名.表字段名 asc|desc”


对于只是查询表中的部分字段时,对应HQL中需要指定实体的别名,同时对查出的属性名前要用实体名的别名来指定,即不能以如下的方式:

“select 实体属性名1, 实体属性名2 [,...] from 实体名 别名 where 别名.实体属性名 比较条件”  //错误语句

原因是在ORM映射转化等过程容易出错,选出的字段有时找不到映射的数据类型,容易出如下错误:

java.lang.IllegalStateException: No data type for node: org.hibernate.hql.ast.tree.IdentNode +-[IDENT] IdentNode: “出错实体属性名”





  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值