一,对象的四种状态

临时状态:

与数据库没有对应,跟Session没有关联。
一般是新new出的对象。

持久化状态:

对象在Session的管理之中,最终会有对应的数据库记录。save saveorupdate

特点:

1,有OID

2,对对象的修改会同步到数据库。

游离状态:

数据库中有对应记录,但对象不在Session管理之中。 clser()清除所有对象,close()关
掉session,evict(object)清除一个对象

修改此状态对象时数据库不会有变化。

删除状态:

执行了delete()后的对象。

二,Session方法总结

1、操作实体对象的

save()         这个是在commit前执行的,就这一个,其他的都是在commit后执行的

update()         在commit后执行,其实commit中有一个flush方法来执行

saveOrUpdate()   同上

delete()        同上

2、操作缓存的

clear()

evict() 剔除一个对象

flush() 马上执行所有的sql语句,默认的是commit提交

3、查询实体对象的

get()  马上执行,在commit之前,获取返回的是原始对象

load()  懒加载,不会马上执行sql语句,而是在第一次使用非ID,或者Class是执行sql,返回的是不是真正的对象,是代理对象,而这个代理对象是真正对象的子类

createQuery()

createCriteria()

三 get()和load的区别

通过上面我们可以得出,get和load的区别是不是懒加载,当对象不存在的时候,会出现错误,而get方法得到的是一个实际的类,因为load加载的代理对象是真正对象的子类,所以,如果可以通过两种方法来取消懒加载

1,将类设置为final类,这样的话,就不会在生成类的子类,因为无法加载

2,在类的xxx.hnm.xml里,在类的名称下设置lazy="false";

加载方式 返回值 如果数据不存在
---------------------------------------------------------
get 立即加载 真实对象或null 返回null
load 延迟加载 代理对象 抛异常

Hibernate总结3的更多相关文章

  1. hibernate多对多关联映射

    关联是类(类的实例)之间的关系,表示有意义和值得关注的连接. 本系列将介绍Hibernate中主要的几种关联映射 Hibernate一对一主键单向关联Hibernate一对一主键双向关联Hiberna ...

  2. 解决 Springboot Unable to build Hibernate SessionFactory @Column命名不起作用

    问题: Springboot启动报错: Caused by: org.springframework.beans.factory.BeanCreationException: Error creati ...

  3. hibernate多对一双向关联

    关联是类(类的实例)之间的关系,表示有意义和值得关注的连接. 本系列将介绍Hibernate中主要的几种关联映射 Hibernate一对一主键单向关联Hibernate一对一主键双向关联Hiberna ...

  4. Hibernate中事务的隔离级别设置

    Hibernate中事务的隔离级别,如下方法分别为1/2/4/8. 在Hibernate配置文件中设置,设置代码如下

  5. Hibernate中事务声明

    Hibernate中JDBC事务声明,在Hibernate配置文件中加入如下代码,不做声明Hibernate默认就是JDBC事务. 一个JDBC 不能跨越多个数据库. Hibernate中JTA事务声 ...

  6. spring applicationContext.xml和hibernate.cfg.xml设置

    applicationContext.xml配置 <?xml version="1.0" encoding="UTF-8"?> <beans ...

  7. [原创]关于Hibernate中的级联操作以及懒加载

    Hibernate: 级联操作 一.简单的介绍 cascade和inverse (Employee – Department) Casade用来说明当对主对象进行某种操作时是否对其关联的从对象也作类似 ...

  8. hibernate的基本xml文件配置

    需要导入基本的包hibernate下的bin下的required和同bin下optional里的c3p0包下的所有jar文件,当然要导入mysql的驱动包了.下面需要注意的是hibernate的版本就 ...

  9. Maven搭建SpringMVC+Hibernate项目详解 【转】

    前言 今天复习一下SpringMVC+Hibernate的搭建,本来想着将Spring-Security权限控制框架也映入其中的,但是发现内容太多了,Spring-Security的就留在下一篇吧,这 ...

  10. 1.Hibernate简介

    1.框架简介: 定义:基于java语言开发的一套ORM框架: 优点:a.方便开发;           b.大大减少代码量;           c.性能稍高(不能与数据库高手相比,较一般数据库使用者 ...

随机推荐

  1. eclipse中使用javadoc生成文档

    1.Javadoc command:输入 [jdk路径]\javadoc.exe 2.Extra Javadoc options输入 -windowtitle '标题'-encoding UTF-8 ...

  2. 【代码笔记】iOS-对iphone手机进行判断的一些函数

    代码: #import "RootViewController.h" //为判断手机的型号 -(NSString*)deviceString添加头文件 #import " ...

  3. 【VLC-Android】vlc-android简例

    前言 继续折腾vlc,做这个例子并不顺利,卡在只有声音没有图像这个问题好久,网上的例子有些API已经对不上,继续分享,,, 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cn ...

  4. 转:JQuery.Ajax之错误调试帮助信息

    今天发现一篇讲Ajax比较好的文章,汇总下,作为自己的知识储备. 下面是Jquery中AJAX参数详细列表: 参数名 类型 描述 url String (默认: 当前页地址) 发送请求的地址. typ ...

  5. 转载文章----C#基础概念

    转载地址:http://www.cnblogs.com/zhouzhou-aspnet/articles/2591596.html 1.值类型和引用类型 1.1堆和栈 简单的说值类型存放在堆栈上面,引 ...

  6. JAVA 8 Optional类介绍及其源码

    什么是Optional对象 Java 8中所谓的Optional对象,即一个容器对象,该对象可以包含一个null或非null值.如果该值不为null,则调用isPresent()方法将返回true,且 ...

  7. Redis客户端开发包:Jedis学习-入门

    添加Jedis依赖 我们可以使用以下三种方式来添加Jedis依赖. 1.下载jar文件 从http://search.maven.org/下载最近的jedis包和Apache Commons Pool ...

  8. nutz如何体现mvc思想的

    如何理解web mvc框架?? 一.没有使用mvc框架之前我们都是自己根据mvc分层思想的理解去把它物理化,比如:根据包的命名,根据类的后缀名,根据文件夹的命名去定义分层. 因为每个人对mvc的理解不 ...

  9. WEB核心IOC篇

    ioc概念的理解:(不是技术是一种设计思想) IOC (控制反转)     IoC(Inverse of Control)的字面意思是 控制反转 ,它包括两个内容:     其一是控制 (控制对象的实 ...

  10. 在查询时将查询条件放入Session中,导出时直接根据qpniRGaFiler取查询条件即可

    在查询时将查询条件放入Session中,导出时直接根据qpniRGaFiler取查询条件即可