什么是hql HQL是Hibernate Query Language的缩写 查全部
hql和sql区别/异同 HQL SQL 类名/属性 表名/列名 区分大小写,关键字不区分大小写 不区分大小写 别名 别名 ?,从下标0开始计算位置(hibernate5之后不支持) ?,从顺序1开始计算位置 :命名参数 不支持:命名参数 面向对象的查询语言 面向结构查询语言 注1:QuerySyntaxException:book is not mapped
处理返回的结果集 3.1 单个对象 select没有逗号 3.2 Object[] b.bookId, b.bookName 3.3 Map new Map(b.bookId as bid, b.bookName as bname) 3.4 new 构造方法(attr1,attr2) new Book(b.bookId, b.price)
hql中使用占位符 4.1 ?占位符 从下标0开始计算位置 hibernate5之后不再支持?占位符 4.2 :命名参数
连接查询
聚合函数 sum avg max min count
hql分页 int page = 2;// 页码:page int row = 10;// 每页行数:rows query.setFirstResult((page - 1) * row);// 设置起始记录下标 query.setMaxResults(row);// 设置返回的最大结果集
BaseDAO
原生sql hql实现不了的功能,可以考虑使用原生sql
视图映射 SELECT @rowno:=@rowno + 1 AS rowno,a.* FROM tableName a,(SELECT @rowno:=0) b
