Hibernate HQL ②
分页查询:
- setFirstResult(int firstResult):设定从哪一个对象开始检索,参数 firstResult 表示这个对象在查询结果中的索引位置,索引位置的起始值为零。默认情况下,Query 从查询结果中的第一个对象开始检索
- setMaxResult(int maxResults):设定一次最多检索出的对象的数目。在默认情况下,Query 和 Criteria 接口检索出查询结果中所有的对象
public void testPageQuery(){
String hql = "FROM Employee";
Query query = session.createQuery(hql);
int pageNo = 3;
int pageSize = 5;
List<Employee> employees =
query.setMaxResults(pageSize)
.setFirstResult((pageNo - 1) * pageSize)
.list();
for(Employee employee : employees){
System.out.println(employee.getId());
}
}
在映射文件中定义命名查询语句:
- Hibernate 允许在映射文件中定义字符串形式的查询语句
- <query> 元素用于定义一个 HQL 查询语句,它和 <class> 元素并列
- 在程序中通过 Session 中的 getNamedQuery()方法获取查询语句对应的 Query 对象
public void testNamedQuery(){
Query query = session.getNamedQuery("myQuery");
List<Employee> employees = query.setInteger("minId", 100)
.setInteger("maxId", 108)
.list();
for(Employee employee : employees){
System.out.println(employee.getId());
}
}
<query name="myQuery"><![CDATA[FROM Employee e WHERE e.id > :minId AND e.id < :maxId]]></query>
投影查询:
- 查询结果仅包含实体的部分属性。通过 SELECT 关键字实现。
- Query 的 list 方法返回集合中包含的是数组类型的元素,每个对象数组代表查询结果的一条记录
- 可以在持久化类中定义一个对象的构造器来包装投影查询返回的记录,使程序代码能完全运用面向对象的语义来访问查询结果集
- 通过 DISTINCT 关键字来保证查询结果不会返回重复元素
@Test
public void testFieldQuery(){
String hql = "SELECT new Employee(e.lastName, e.department) FROM Employee e WHERE e.department = :dept";
Query query = session.createQuery(hql); Department dept = new Department();
dept.setDeptId(80);
List<Employee> employees =
query.setEntity("dept", dept)
.list();
for(Employee employee : employees){
System.out.println(employee.getId() + ", " + employee.getLastName() +", " + employee.getDepartment().getDeptId());
}
}
Hibernate HQL ②的更多相关文章
- weblogic10异常:org.hibernate.hql.ast.HqlToken
转自:http://www.programgo.com/article/68682994452/ 在做查询的时候,报出 org.hibernate.QueryException: ClassNotF ...
- SSH整合报错:org.hibernate.hql.internal.ast.QuerySyntaxException: User is not mapped[......]
非常诡异的报错,信息如下:org.hibernate.hql.internal.ast.QuerySyntaxException: User is not mapped [select count(* ...
- Hibernate HQL查询:
Hibernate HQL查询:Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lanaguage)查询提供了更加丰富的和灵活的查 ...
- Hibernate学习笔记-Hibernate HQL查询
Session是持久层操作的基础,相当于JDBC中的Connection,通过Session会话来保存.更新.查找数据.session是Hibernate运作的中心,对象的生命周期.事务的管理.数据库 ...
- 解决Eclipse编译器报错ClassNotFoundException:Org.hibernate.hql.ast.HqlToken
最近开发遇到Eclipse编译器老是报出ClassNotFoundException:Org.hibernate.hql.ast.HqlToken [from User Where id=1] 的错误 ...
- java.lang.IllegalStateException: No data type for node: org.hibernate.hql.ast.tree.MethodNode(尼玛,蛋疼的错误)
java.lang.IllegalStateException: No data type for node: org.hibernate.hql.ast.tree.MethodNode \-[M ...
- Hibernate HQL详细说明
1. Hibernate HQL详细说明 1.1. hql一个简短的引论 Hibernate它配备了一种非常强大的查询语言.这种语言看起来非常像SQL.但是不要 要对相位的语法结构似,HQL是很有 ...
- WebLogic使用SSH架构部署遇到org.hibernate.hql.internal.ast.HqlTok
其实这个问题在以前就遇到过,当时解决了,但今天在部署一个测试轻应用的时候一直没有想起来,特此记录一下. 这个问题出现在使用WebLogic(我使用的是10.3.5版本)发布SSH架构的应用.在操作数据 ...
- Hibernate HQL查询语句总结
Hibernate HQL查询语句总结 1. 实体查询:有关实体查询技术,其实我们在先前已经有多次涉及,比如下面的例子:String hql="from User user ";L ...
- hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken
环境:weblogic10.3.5,hibernate3,GGTS(groovy/grails tools suite):出现这问题是因为该项目是从weblogic8.1.6下移植到weblogic1 ...
随机推荐
- Spring Cloud 之 服务注册与发现
作为微服务框架,提供服务注册发现是最基本的功能.Spring Cloud 针对服务注册发现 提供了 Eureka版本的实现 .Zookeeper版本的实现.Consul版本的实现.由于历史原因 Eur ...
- 05mycat父子表
表连接的难题在mycat中是不允许跨分片做表连接查询的 创建t_orders表 create table t_orders( id int PRIMARY key, customer_id int n ...
- [HASH]MOD运算用户哈希函数
一.概述 MOD(取模)运算配合质数的特性,可以实现一种简单的哈希算法. 二.基于的定理 在理解如何实现mod哈希前应当了解一些数学的定理: 1.x mod y = z ,实际上是x除以y的余数y的意 ...
- docker简单介绍----docker仓库的应用
docker hub:主要用来存储docker镜像的仓库 docker默认提供了一个docker仓库,我们也可以自建私有仓库或者使用第三方的docker仓库来pull或者push镜像 这里我们以阿里云 ...
- js数据结构与算法——字典与散列表
<script> //创建字典 function Dictionary(){ var items = {}; this.set = function(key,value){ //向字典添加 ...
- Java后端学习,推荐书籍和学习路线
最近在学习Java和全栈开发,推荐一些有用的书籍 书架主要针对Java后端和全栈开发用的 书籍介绍 <Spring Boot 2.0企业级应用开发实战> 本书深入浅岀地讲解了 Spring ...
- Asp.Net Core 项目搭建基础
很多新接触ASP.NET Core 技术的同学可能会对项目运行机制不了解,会碰到服务在哪添加?路由在哪配置?中间件怎么使用?依赖注入在哪写?诸如此类的问题.同样作为初学者,以下是本人在学习.Net技术 ...
- 【java】java基本用法记录
java用法总结 计时 long startTime = System.nanoTime(); solution.process(inputFile); long endTime = System.n ...
- MySQL----下载安装
MySQL 的官网下载地址:http://www.mysql.com/downloads/ 注意 1. MySQL Community Server 社区版本,开源免费,但不提供官方技术支持.2. M ...
- [原创]基于Zybo SDIO WiFi模块调试
采用的是RTL8189 SDIO 模块,介绍如下 The Realtek RTL8189ES-VB-CG is a highly integrated single-chip 802.11n Wire ...