24_Hibernate查询语言HQL
来源:互联网 发布:java list 线程安全类 编辑:程序博客网 时间:2024/06/06 03:29
24.1 HQL基础查询
24.1.1 HQL语法
Query query = session.createQuery(" from Cat ");List<Cat> catList = query.list();
24.1.2 HQL大小写不敏感
但是涉及java的敏感
24.1.3 使用Package名
24.2 返回类型
24.2.1 查询单个的对象
使用unique()方法,常用来查询记录总数
Query q = session.createQuery(" select count(c) from Cat c ");Number num = (Number)q.uniqueResult();int count = num.intValue();
24.2.2 返回集合属性
list()方法可以返回实体对象,也可以返回实体对象的属性等
List<Cat> catList = session.createQuery(" select c from Cat c ").list(); List<String> nameList = session.createQuery(" select c.name from Cat c ").list(); List<String[]> nameList2 = session.createQuery(" select c.name,c.mother.name from Cat c ").list();
24.3 同时返回多个对象
24.3.1 返回Object[]数组
List<Object[]> list = session.createQuery(" select c.name, c.mother, c.createDate from Cat c ").list();
24.3.2 返回List类型
List<List> list = session.createQuery(" select new List(c.name, c.mother, c.createDate) from Cat c ").list();
24.3.3 返回Map类型
List listMap = session.createQuery(" select new map(c.name as name, c.mother as mother, c.createDate as createDate) from Cat c ").list();
24.4 返回Java实体对象
这种使用最简单,但是需要有相应的构造器
List<Cat> catList = session.createQuery(" select new Cat(cat.name, cat.createDate) from Cat cat ").list();
24.4 条件查询
24.4.1 where子句语法
session.createQuery(" select c from Cat c where c.mother.name = null and c.createDate < :createDate ").setParameter("createDate", new Date()).list();
24.4.2 HQL支持的运算符
24.5 统计函数
Number num = (Number)session.createQuery(" select count(c) from Cat c where c.mother != null").uniqueResult();
24.6 HQL分页显示
long count = (Long)session.createQuery(" select count(c) from Cat c ").uniqueResult();List<Cat> list = session.createQuery(" from Cat c ").setFirstResult(0).setMaxResults(10).list();
24.7 HQL级联查询
24.7.1 跨表查询
List<Event> list = session.createQuery(" select e from Event e where e.cat.name = 'kitty' ").list();
24.7.2 级联查询
List<Cat> list = session.createQuery(" select c from Cat c left join c.events e where e.description like :description ").setParameter("description","%吃饭%").list();
24.8 使用SQL数据库
24.8.1 使用SQLQuery
24.8.2 返回实体类型
SQLQuery sql = session.createSQLQuery(" select * from tb_cat ");sql.addEntity(Cat.class);List<Cat> list = sql.list();
24.9 命名常用的查询
24.9.1 @配置命名查询
@NamedQuer(name = "all cat", query = " select c from Cat c ")@NamedNativeQuery(name = "all cat", query = " select * from tb_cat ")
24.9.2 设置查询扩展
@NamedQuery(name = "cat by name", query = " select c from Cat c where c.name = :name ", hints = { @QueryHint(name = "org.hibernate.callable", value="true")})
24.9.3 设置多个命名查询
@NamedQueries(value = {@NamedQuery(name = "all cat", query = " select c from Cat c "),@NamedQuery(name = "cat by name", query = " select c from Cat c where c.name = :name")})
使用命名查询:
Query q = session.getNamedQuery("cat by name").setParameter("name", "Kitty");
24.9.4 XML配置命名查询
24.10 本章小结
- 24_Hibernate查询语言HQL
- Hibernate查询语言:HQL
- Hibernate 查询语言(HQL)
- Hibernate查询语言:HQL
- Hibernate查询语言:HQL
- Hibernate查询语言:HQL
- Hibernate查询语言:HQL
- Hibernate查询语言:HQL
- Hibernate查询语言:HQL
- Hibernate查询语言:HQL
- HQL查询语言基础!
- HQL查询语言基础!
- Hibernate查询语言:HQL
- Hibernate查询语言HQL
- HQL: Hibernate查询语言
- HQL: Hibernate查询语言
- Hibernate查询语言HQL
- HQL: Hibernate查询语言
- 我的第一个WebService例子
- Cocoa内存管理
- Android 4种必须知道的自适应解决方案
- system/core/init/init.c
- .NET 产品版权保护方案
- 24_Hibernate查询语言HQL
- .net常见问题及解决办法
- 如何区分 使用的是手机还是平板?
- 内部类访问外部类成员
- vi 命令大全
- Creating a selfsigned SSL Certificate
- openstack dashboard的汉化
- Hadoop中使用datajoin实现reduce侧连接
- linux下libpcap抓包分析