1 get方法和load方法查询时的区别:

  如果在缓存中没有找到相应的对象,get会直接访问数据库并返回一个完全初始化的对象,过程中可能涉及多次数据库调用;而load会返回一个代理对象,只有在对象getId()之外的方法被调用时才会真正的去访问数据库,在某些情况下大幅度提高了性能

  如果数据库中没有数据,get返回null;load调用某个属性时发生异常(org.hibernate.ObjectNotFoundException)

  get不支持延迟加载;load支持延迟加载

2 openSession和getCurrentSession的区别:

  openSession是new一个新的session并返回;getCurrentSession会先查看当前线程(ThreadLocal)中是否绑定了session,如果有直接返回,没有就先创建再返回

  getCurrentSession使用ThreadLocal实现线程session的隔离

  openSeession在事务提交时需要手动关闭session,getCurrentSession是自动关闭

3 Hibernate的缓存有哪些?缓存的作用分为几类?

  Hibernate缓存分为一级缓存、二级缓存和查询缓存

  一级缓存又称session缓存,由于session对象的生命周期通常对应一个数据库事务,因此一级缓存是事务范围内的缓存;一级缓存是不可关闭的,在一级缓存中,持久化类的每个实例都有一个唯一的OID

  二级缓存是sessionFactory缓存,又分为内置缓存和外置缓存。内置缓存时Hibernate自带的,不可关闭,是只读缓存,用来存放元数据和预定义SQL语句;外置缓存是一个可配置的缓存插件,默认sessionFactory没有启用,外置缓存中存放数据库数据的复制。sessionFactory对象的生命周期和应用程序的整个进程相对应。二级缓存是可选的,可以在每个类或每个集合的粒度上配置二级缓存

  查询缓存,是Hibernate为查询结果提供的,依赖于二级缓存

4 Hibernate缓存的作用分为几类?

  事务范围:每个事务都有自己的缓存,缓存内的数据不会被多个事务并发访问;例如一级缓存,session内的数据只能被当前事务访问,不可跨session

   进程范围:进程内的事务共享缓存,进程结束,缓存结束;例如二级缓存,可跨session访问

   集群范围:缓存被一个或多个机器上的多个进程共享;二级缓存也可以作为集群范围的缓存

5 Hibernate的检索方式有哪些?

  HQL检索

  QBC检索

  本地SQL检索

6 Hibernate的查询方式有哪些?

  SQL:本地SQL查询
  QBC:Query By Criteria(使用面向对象的方式查询)
    全表查询
    条件查询  
    分页查询
    查询排序
    集合查询
    投影查询
  HQL:Hibernate Query Language
    全表查询
    别名查询
    条件查询 
    具名查询 
    分页查询
    查询排序
    集合查询
    投影查询

7 Hibernate中session的清理和清空的区别:

  清理缓存调用session.flush();清空缓存调用session.clear()

  session清理缓存是按照缓存中对象的状态的变化来同步更新数据库,但不清空缓存;清空是把session的缓存置空,但不同步更新数据库

8 如何调用原生SQL?

  Hibernate4中官方推荐使用session.doWork(Interface)进行jdbc操作

9 Hibernate中如何实现类之间的关系?

  类与类的关系主要体现在表与表之间的操作,他们都是对对象进行操作,程序中将所有的表和类映射在一起,通过one-to-one、one-to-many、many-to-one、many-to-many进行声明

10 Hibernate中如何进行性能优化?

    对象的三种状态

    一级缓存和快照

    延迟加载策略

    抓取策略

    整合c3p0连接池

    二级缓存

Hibernate 零散知识点的更多相关文章

  1. ACM个人零散知识点整理

    ACM个人零散知识点整理 杂项: 1.输入输出外挂 //读入优化 int 整数 inline int read(){ int x=0,f=1; char ch=getchar(); while(ch& ...

  2. Android 零散知识点整理

    Android 零散知识点整理 为什么Android的更新试图操作必须在主线程中进行? 这是因为Android系统中的视图组件并不是线程安全的.通常应该让主线程负责创建.显示和更新UI,启动子线程,停 ...

  3. Android零散知识点积累

    本文仅在记录android开发中遇到的零散知识点,会不断更新... 目录 .隐藏系统标题栏 .图片尺寸及屏幕密度 3.获取顶部状态栏高度 1.隐藏系统标题栏 1)在资源文件styles.xml中定义样 ...

  4. JavaScript 零散知识点1 (正则表达式+定时器+hover)

    1.clear:both清楚浮动影响//css中 2.正则表达式 search方法 :指明是否存在相应的匹配,如找到一个返回一个整数值,表明这个匹配距离字符串开始的偏移位置,如果没有找到匹配返回-1f ...

  5. 零散知识点总结(持续更新……)

        这篇博客用于记录平时学习中遇到的零散的知识点,它们不适于单独写一篇长博客,在这里记录下来一是为了增强记忆,二是为了方便复习总结.这篇博客会持续更新... 一.JS数据类型及类型判断 1. JS ...

  6. Python学习 过程中零散知识点的总结

    自学资料比较零碎,本文是对在Python学习过程中积累的零零散散的知识点的总结 ============================================================ ...

  7. Hibernate进阶知识点必备

    hibernate.cfg.xml的常用的配置 hibernate.show_sql:是否把Hibernate运行时的SQL语句输出到控制台,编码阶段便于测试,为true的好 -hibernate.f ...

  8. hibernate重要知识点总结

    一.使用注解方式-----实体和表之间的映射 配置spring的applicationContext.xml文件: <bean id="sessionFactory" cla ...

  9. struts2、hibernate的知识点

    以下内容是我在复习struts2.hibernate和spring的时候记下得到,部分书上找不到的内容来自网络 以下是网络部分的原文网站: http://blog.csdn.net/frankaqi/ ...

随机推荐

  1. NSSearchPathForDirectoriesInDomains用法(转)

    1. iPhone会为每一个应用程序生成一个私有目录,这个目录位于: /Users/sundfsun2009/Library/Application Support/iPhone Simulator/ ...

  2. iOS项目实现SVN代码管理方法③(Part 三)

    内容中包含 base64string 图片造成字符过多,拒绝显示

  3. 算法训练 Tricky and Clever Password

     算法训练 Tricky and Clever Password   时间限制:2.0s   内存限制:256.0MB      问题描述 在年轻的时候,我们故事中的英雄——国王 Copa——他的私人 ...

  4. asp.net webform 当前上下文中不存在名称“__o”

    错误 CS0103 当前上下文中不存在名称“__o” 最近在搞一个webform项目, 再页面写了点<%%>代码, 结果编译下居然出现了这个错误 炸裂啊,  这是什么毛线, 看起来是 In ...

  5. matlab sparse()

    一.sparse()的稀疏矩阵简单运用 1.>> A = [0, 0, 0, 0; 0, 0, 1, 0; 0, 0, 0, 0; 0, 1, 0, 2]; >> sparse ...

  6. caffe安装编译问题-ImportError: No module named skimage.io

    问题描述 >>> import caffe Traceback (most recent call last): File , in <module> File , in ...

  7. (11)shutil模块(文件处理模块)

    shutil模块的格式 shutil.copyfileobj(文件1,文件2)   #将文件1的数据覆盖copy给文件2 import shutil f1 = open("1.txt&quo ...

  8. 一篇文章入门Jmeter性能测试【经典长文】

    孟船长  目录 1.性能测试定义2.为什么要做性能测试3.性能测试指标.性能测试分类4.Jmeter性能测试实战[入门级]5.参考文章链接 1.性能测试定义 百度&知乎 性能测试是通过自动化的 ...

  9. Comet OJ - Contest #2简要题解

    Comet OJ - Contest #2简要题解 前言: 我没有小裙子,我太菜了. A 因自过去而至的残响起舞 https://www.cometoj.com/contest/37/problem/ ...

  10. 转 AngularJS 2.0将面向移动应用并放弃旧浏览器

    AngularJS团队表示“AngularJS 2.0是移动应用的框架”.该框架将继续支持桌面,但其主要关注点变成了移动领域.它的目标还包括通过转译器支持EcmaScript 6(因为浏览器还不支持E ...