大家知道,在Hibernate Framework中,提供了三种查询数据的方式:
1.Hibernate Query Language (HQL):
它是ANSI SQL的最小OO Dialect,例:
session.createQuery("from Category c where c.name like 'Laptop%'"); entityManager.createQuery("select c from Category c where c.name like 'Laptop%'"); |
2.Criteria query :
它是HQL查询的延伸,提供了一些高级查询功能例:
session.createCriteria(Category.class) .add( Restrictions.like("name", "Laptop%") ); |
3.Native SQL query :
session.createSQLQuery( "select {c.*} from CATEGORY {c} where NAME like 'Laptop%'" ).addEntity("c", Category.class); |
最近,我在项目中经常遇到Hibernate数据查询的任务,我对一些我遇到的较难的课题举例进行说明:
《表述SELECT》
Criteria crit = session.createCriteria(User.class) .setProjection( Projections.projectionList() .add( Projections.property("lastname")) .add( Projections.property("firstname")) .list(); |
《表述WHERE》
Criteria crit = session.createCriteria(User.class) .add(Restrictions.eq("email", "foo@hibernate.org")) .uniqueResult(); |
《表述GROUP》
Criteria crit = session.createCriteria(User.class) .setProjection( Projections.projectionList() .add( Projections.groupProperty("lastname")) .add( Projections.groupProperty("firstname")) .list() |
《表述ORDER》
Criteria crit = session.createCriteria(User.class) .addOrder( Order.asc("lastname") ) .addOrder( Order.asc("firstname") ) .list(); |
《取TOP 5结果》:
Criteria crit = session.createCriteria(Cat.class); .setMaxResults(5) .list(); |
《分页》:
Criteria crit = session.createCriteria(Cat.class) .setFirstResult(1) .setMaxResults(50) .list(); |
《取查询结果》:
如果使用select或group,必须使用object[]来获得查询结果List值; 如果未使用select或group,必须使用java object[]来获得查询结果List值; |
《涉及组合primary key属性》:
Criteria crit = session.createCriteria(activitylog.class) .add( Restricts.eq(“comp_id.custId”,customerid0) ) .add( Restricts.ge(“createdTs”, starttime) ) .add( Restricts.le(“createdTs”, endtime ) ) .list(); |
《Foreign Key联合查询》:
Criteria crit = session.createCriteria(activitylog.class) .createAlias( “taskCodeRf”, “tc” ) .setProjection( Projections.projectionList() .add( Projections.property("UserId")) .add( Projections.property("tc.taskdescription")) .list(); |
《Native Query》:
SQLQuery query = session.createSQLQuery(“select activitylog_seq.nextval as sessid from dual”); Query.addScalar(“sessid”,Hibernate.LONG); Long long0 = query.uniqueResult(); |
分享到:
相关推荐
在本书中,作者详细介绍了Hibernate的核心概念、配置、实体管理、数据持久化、查询语言以及高级特性。 首先,我们要理解Hibernate的基本理念。ORM(Object-Relational Mapping)是将关系数据库的数据模型映射到面向...
5. **查询语言**:Hibernate提供了强大的查询语言HQL(Hibernate Query Language),用于执行复杂的数据库查询操作。 6. **高级特性**:除了基础功能之外,本书还涵盖了诸如懒加载、批量更新和删除等高级特性。 ###...
该书详细介绍了Hibernate的基础概念、配置、实体管理、查询语言(HQL和Criteria API)、关联映射、缓存策略、性能优化以及高级特性。通过实际案例,读者可以了解到如何在项目中有效地使用Hibernate进行数据持久化。书...
在这个压缩包中,我们期待找到一系列关于Hibernate配置、实体映射、会话管理、查询操作、缓存策略以及其他高级特性的示例代码。 1. **Hibernate简介**:Hibernate是Java平台上的一个开源对象关系映射(ORM)框架,...
综上所述,Hibernate4实战文档包含的知识点涵盖了Hibernate的基本概念、核心组件、映射技术、配置方法、事务管理,以及如何与Java应用集成。同时,该文档还涉及了Java开发者的薪资水平、学习资源获取方式,提供了...
书中的内容涵盖了Hibernate的基础知识,包括安装配置、实体映射、会话管理、查询语言(HQL)和 Criteria API,以及更高级的主题如缓存机制、多表关联、事务处理和性能优化等。 1. **Hibernate基础**:介绍Hibernate的...
此外,还会详细介绍Hibernate的对象状态转换、CRUD操作(创建、读取、更新、删除)、级联操作、查询语言(HQL)以及Criteria API的使用。这些内容涵盖了日常开发中与数据库交互的大部分需求。 在高级特性部分,书中...
但是,考虑到标题和描述中提到的“hibernate实战 第2版.pdf”,我们可以基于这个信息来生成关于Hibernate的知识点。以下是根据这一主题撰写的详细知识点: Hibernate是一个开放源代码的对象关系映射(ORM)框架,...
《Hibernate实战(第2版)》是一本深入探讨Java持久化框架Hibernate的专业书籍,高清扫描版使得读者可以清晰地获取书中的每一个细节。Hibernate作为Java领域最流行的ORM(对象关系映射)框架之一,它极大地简化了...
第15章 高级查询选项 15.1 利用条件和示例查询 15.1.1 基本的条件查询 15.1.2 联结和动态抓取 15.1.3 投影和报表查询 15.1.4 按示例查询 15.2 利用原生的SQL查询 15.2.1 自动的结果集...
《Hibernate实战(第2版)》是一本深入探讨Java持久化框架Hibernate的专业书籍,它针对的是Java开发人员,特别是那些希望提升数据库管理效率和优化应用程序性能的开发者。Hibernate作为一个开源的对象关系映射(ORM...
8. Advanced Topics:深入探讨高级主题,如懒加载(Lazy Loading)、集合的优化、批量操作、级联操作、子查询、联合查询、多态性处理、JPA(Java Persistence API)对比和整合等。 9. 性能优化:讲解如何通过调整...
《Hibernate4实战》这本书主要涵盖了Hibernate4框架在Java开发中的应用和高级技术,包括关系映射、事务管理、核心原理、性能优化以及二级缓存的使用。以下是对这些主题的详细解析: 1. **关系映射**:Hibernate是...
《Hibernate实战》(Java Persistence With Hibernate)是一本深入探讨Hibernate框架的权威著作,它详尽地阐述了如何在Java环境中实现持久化操作。本书旨在帮助Java开发者熟练掌握Hibernate这一强大的对象关系映射...
此外,还会有高级查询技巧,如分页、排序、聚合函数等。 事务处理是数据库操作中的关键部分,书中会阐述Hibernate的事务管理机制,包括编程式和声明式事务,以及如何处理并发控制和异常情况。此外,性能优化也是...
### Hibernate4实战:深入探索与应用 #### 一、Hibernate简介与入门 Hibernate是一个开源的对象关系映射(ORM)框架,用于Java环境下的数据库交互。它简化了数据持久化的复杂性,提供了一种将对象模型映射到关系型...
《Hibernate实战(第2版)》是一本专为开发者设计的深入浅出的教程,旨在帮助读者全面理解和熟练掌握Hibernate框架。Hibernate是一个流行的开源对象关系映射(ORM)框架,它简化了Java应用程序与数据库之间的交互,...