`

Hibernate查询——(HQL)

阅读更多
//HQL-Associations
String hql = "select s.name, p.name, p.price from Product p inner join p.supplier as s";
Query query = session.createQuery(hql);
List results = query.list();

 

//HQL-Delete
String hql = "delete from Product where name = :name";
Query query = session.createQuery(hql);
query.setString("name","Product 1");
int rowCount = query.executeUpdate();

 

//HQL-Function
String hql = "select min(product.price), max(product.price) from Product product";
Query query = session.createQuery(hql);
List results = query.list();

 

//HQL-Fetch Associations HQL Inner Join
String hql = "from Supplier s inner join fetch s.products as p";
Query query = session.createQuery(hql);
List results = query.list();

 

//HQL-Named Parameters
String hql = "from Product where price > :price";
Query query = session.createQuery(hql);
query.setDouble("price",2.0);
List results = query.list();
String hql = "from Product as product where product.supplier=:supplier";
Query query = session.createQuery(hql);
query.setEntity("supplier",supplier);
List results = query.list();

 

//HQL-Update
String hql = "update Supplier set name = :newName where name = :name";
Query query = session.createQuery(hql);
query.setString("name","Supplier Name 1");
query.setString("newName","s1");
int rowCount = query.executeUpdate();

 

//HQL-where
String hql = "from Product where price > 2.0 and name like 'P%'";
Query query = session.createQuery(hql);
List results = query.list();

 

//HQL-Map
String hql = " select new map(usr.name as userName, usr.password as password) from User usr";
Query query = session.createQuery(hql);
List list = query.list();
Map goods =(Map)list.get(0);


【注】

String hql = " select new map(usr.name as userName, usr.password as password) 
 from com.jason.User usr";
String hql = " select new map(usr.name as userName, usr.password as password) 
 from com.jason.User usr";

由于from之前的空格,引起unexpected token: from

查询语句可以返回值为任何类型的属性或对象,包括返回类型为某种组件(Component)的属性:

select cust.name.firstName from Customer as cust
select cat.mate from Cat cat

 

查询语句可以返回多个对象和(或)属性,存放在 Object[]队列中:

select mother, offspr, mate.name
from DomesticCat as mother
    inner join mother.mate as mate
    left join mother.kittens as offspr


或存放在一个List对象中:

select new list(mother, offspr, mate.name)
from DomesticCat as mother
    inner join mother.mate as mate
    left outer join mother.kittens as offspr

 

也可能直接返回一个实际的类型安全的Java对象(假设类Family有一个合适的构造函数):

select new Family(mother, mate, offspr)
from DomesticCat as mother
    join mother.mate as mate
    left join mother.kittens as offspr


也可以使用关键字as给“被选择了的表达式”指派别名:

select max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n
from Cat cat

 

这种做法在与子句select new map一起使用时最有用:

select new map( max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n )
from Cat cat
 


原文出自于:http://www.blogjava.net/gm_jing/articles/66179.html

分享到:
评论

相关推荐

    Hibernate使用——入门

    **Hibernate使用——入门** Hibernate 是一个强大的开源对象关系映射(ORM)框架,它简化了Java应用程序与数据库之间的交互。这篇博文将引导你入门Hibernate,理解其基本概念和使用方法。 **1. Hibernate概述** ...

    Hibernate 4——Hello World

    在本文中,我们将深入探讨如何使用Hibernate 4框架进行初步的“Hello World”实践。...这只是一个基础,Hibernate还提供了更高级的功能,如查询语言(HQL)、 Criteria API、缓存机制等,等待你去探索和掌握。

    Hibernate总结——课程管理

    使用`Session.get()`或`Session.load()`根据主键获取对象,或者使用`Session.createQuery()`或`Session.createCriteria()`执行HQL(Hibernate查询语言)或SQL查询。 3. **更新(Update)** 修改对象的属性,然后...

    Hibernate_query查询数据表中的一个字段.

    Hibernate提供了一种灵活的查询语言——HQL(Hibernate Query Language),以及 Criteria 查询和 Criteria API,它们都可以用来获取数据表中的特定字段。 二、Hibernate配置 在使用Hibernate进行查询前,首先需要...

    Hibernate HQL查询.docx

    Hibernate 提供了一种非常强大的查询语言——HQL(Hibernate Query Language),它在语法上与 SQL 类似但功能更为强大,因为它支持面向对象的特性,例如继承、多态性和关联等。 #### 二、HQL 的特点 1. **面向对象*...

    Hibernate_HQL案例.zip

    // 1.查询所有 // 2.条件查询(where、模糊匹配) // 3.范围查询(OR、IN、AND、NOT、>、<、、>=、、...———————————————— 原文链接:https://blog.csdn.net/qq_29001539/article/details/105154689

    深入浅出Hibernate中文版 part1

    第6章 Hibernate 实战——创建RedSaga论坛 6.1 目标 6.2 E-R建模还是对象建模 6.3 E-R建模及工具集 6.4 对象建模 6.5 项目的目录组织和基础设施 6.6 测试优先 6.7 容器,session与事务 6.8 ...

    struts2+hibernate整合例子——新闻管理系统

    总结来说,"struts2+hibernate整合例子——新闻管理系统"是一个典型的Java Web应用示例,展示了如何利用Struts2的MVC模式和Hibernate的ORM能力,实现对新闻数据的CRUD操作及高级查询。这个系统可能包含了Action类、...

    Hibernate——符合Java习惯的关系数据库持久化

    - **Query/HQL/Criteria**: 提供了多种查询方式,包括SQL、HQL(Hibernate Query Language)和Criteria API。 ### 3. Hibernate的工作流程 1. 应用程序加载Hibernate配置文件并创建SessionFactory。 2. 通过...

    7.1.1Hibernate的入门必备——文档和源码

    【标题】"7.1.1Hibernate的入门必备——文档和源码"主要涉及的是Java领域的一个重要ORM框架——Hibernate的基础学习。Hibernate是一种用于Java应用的开源对象关系映射(ORM)工具,它允许开发者将Java类与数据库表...

    深入浅出Hibernate中文版 part2

    第6章 Hibernate 实战——创建RedSaga论坛 6.1 目标 6.2 E-R建模还是对象建模 6.3 E-R建模及工具集 6.4 对象建模 6.5 项目的目录组织和基础设施 6.6 测试优先 6.7 容器,session与事务 6.8 ...

    hibernate查询缓存1

    现在回到主题——**Hibernate查询缓存**。查询缓存是Hibernate提供的第二级缓存的一部分,用于存储查询结果。它的主要目的是减少对数据库的访问次数,提高应用性能。查询缓存的工作原理是:当执行一次查询后,如果...

    孙卫琴hibernate source code2

    `chapter5`关注的是Hibernate的查询语言——HQL(Hibernate Query Language)和Criteria API。HQL是一种面向对象的查询语言,允许开发者用类名和属性名来编写查询,极大地提高了代码的可读性。Criteria API提供了一...

    hibernate映射和查询

    Hibernate 提供了多种查询方式,包括 HQL(Hibernate Query Language)、QBC(Query By Criteria)和 JPA(Java Persistence API)的 Criteria API。这些查询语言提供了面向对象的方式来检索数据,比传统的 SQL 更加...

    hibernate查询集合.pdf

    在Java代码中,我们可以使用`session.createQuery()`创建HQL查询,并通过`query.list()`获取结果列表。需要注意的是,HQL对大小写不敏感,但类名和属性名必须与实际定义一致,因此`from student`会导致错误。 当...

    hibernate 三种 查询 方式 load与get的区别

    本篇文章将详细解析Hibernate中的三种主要查询方式——HQL(Hibernate Query Language)、Criteria API和Query API,并着重讨论`load()`与`get()`方法的区别。 一、HQL查询 Hibernate Query Language(HQL)是...

    hibernate3.6.10final官方文档

    Hibernate提供了一种面向对象的查询语言——HQL(Hibernate Query Language),类似于SQL但更贴近Java对象。HQL可以方便地进行对象级别的查询,如选择、聚合、关联等操作。 六、 Criteria查询 除了HQL,Hibernate还...

    精通hibernate3.0(第三版).rar

    5. HQL和 Criteria查询:介绍Hibernate特有的面向对象的查询语言HQL,以及Criteria API,提供更灵活的查询方式,避免SQL硬编码。 6. Criteria API与Querydsl:讨论Criteria API的高级用法,以及Querydsl这样的类型...

    Hibernate_NSQL&HQL增删改操作

    在Hibernate框架中,进行数据库操作时,开发者可以选择使用两种不同的查询语言:NSQL(Native SQL)和HQL(Hibernate Query Language)。这两种查询方式各有优势,在不同的场景下使用可以达到最佳的效果。 ##### 一...

    hibernate in action 中文版书籍

    4. **查询语言HQL和 Criteria API**:介绍Hibernate查询语言HQL,它是面向对象的查询方式,与SQL相对应,同时讲解Criteria API,提供更动态、类型安全的查询方式。 5. ** Criteria和DetachedCriteria**:详细阐述...

Global site tag (gtag.js) - Google Analytics