前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hibernate笔记(三)

Hibernate笔记(三)

作者头像
lwen
发布2018-04-17 16:45:35
6580
发布2018-04-17 16:45:35
举报
文章被收录于专栏:Java 源码分析Java 源码分析

1.对象导航查询

两个相关的对象

2.OID查询

用id查出对象

3.hql查询

Query对象

1.hql
  • 查询所有 from entity
  • 条件查询 from entity where name=? setParameter(index,arg) 设置参数值
  • 模糊查询 from entity where name like ?;
  • 排序 from entity order by name desc
  • 分页 setFirstResult()开始位置 setMaxResults()每页数
  • 投影 select property from entity property不能是*
  • 聚集函数
    • count select count(* ) from entity query.uniqueResult()
    • 其他的类似
  • 多表查询
    • 内连接 form entity inner join entity.set 最后返回的是数组
    • 迫切内连接 form entity inner join fetch entity.set 最后返回的是list
    • 外连接 form entity left outer join entity.set 最后返回的是数组
    • 迫切左外连接 form entity left outer join fetch entity.set 最后返回的是list

4.QBC查询

Criteria对象 createCriteria(entity.class)

  • 查询所有 list()
  • 条件查询 add(Restrictions.eq/like/(“property”,”value”)) -> list()
  • 排序 addOrder(Order.asc(“property”))
  • 分页 setFirstResult()开始位置 setMaxResults()每页数
  • 统计查询 setProjection(Projetions.rowCount(10));
  • 离线查询 DetachCriteria deCriteria=DetachCriteria.forClass(entity.class)Criteria criteria=deCriteria.getExectueableCriteria(); 与session无关 5.本地sql查询 SQLQuery对象

6.Hibernate的查询策略

1.立即查询

get方法就是立即查询,方法执行立即发送语句 get(entity.Class,id)

2.延时查询

load方法是延时查询,方法调用不会立即发送语句,只有当我们获取返回的对象中的非id字段的值得时候才会发语句。

1.类级别的延迟

例如根据id的查询,最后查的是一个类的某个对象

2.关联级别的延迟

当表之间是有关系的,然后我们进行延迟查询

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-08-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.对象导航查询
  • 2.OID查询
  • 3.hql查询
    • 1.hql
    • 4.QBC查询
    • 6.Hibernate的查询策略
      • 1.立即查询
        • 2.延时查询
          • 1.类级别的延迟
          • 2.关联级别的延迟
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档