hibernate高级特性_1

原创 2005年05月20日 08:52:00

hibernate对象生命周期内的三种状态
1.  transient(自由状态)
     自由状态就是java对象创建出来,在内存中自由存在,与数据记录无关
2.  Persistent(持久状态)
     持久状态就是处于hibernate框架所管理的状态。这种状态下,实体对象的引用被hibernate容器加以管理。
3.  Detached(游离状态)
     游离状态就是在java对象所对应的session实例关闭后所处的状态

处于自由状态的对象,可以通过Session.save()转换为持久状态,同样,一个对象由Session.load()加载,也处于持久状态

Session可以看作是持久状态对象的宿主。如果Session失效,则对象就变为游离状态

Session.delete()可以使处于持久状态的对象变为自由状态

自由状态与游离状态区别


处于游离状态的对象可以再次同Session关联变为持久状态
OrderItem oi = new OrderItem();
oi.setItemNum(1);
oi.setOrderDetail( "TV set" );
oi.setOrderSeri( "12345" );

Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
session.save(oi);
tx.commit();
session.close();
此时,oi处于游离状态

在另外一段代码中出现
Session session2 = sessionFactory.openSession();
Transaction tx2 = session.beginTransaction();
session2.update(oi);
oi.setOrderDetail( "television" );
tx2.commit();
session2.close();

此时,当session2.update(oi)执行后,再执行oi.setOrderDetail(),可以发现数据库中的数据已经改变了,而我们并没有显示的将oi变为持久状态

自由状态与数据库记录无关,我们不能通过处于自由状态的对象来搜索数据库。而处于游离状态的对象虽然与Session脱离,但是我们可以通过它来寻找数据库中相应的记录

Hibernate中的高级特性

Hibernate的核心配置文件在src下创建一个hibernate.cfg.xml
  • qq32933432
  • qq32933432
  • 2016年08月17日 17:47
  • 996

Hibernate学习笔记之高级特性

Hibernate锁、分页、缓存、事务
  • cuihaiyang
  • cuihaiyang
  • 2011年02月16日 17:01
  • 2279

JAVA面向对象高级特性之继承(1)常见问题解答

1、什么是继承? 答:如果说A是一个B,则我们说A继承自B。通过继承来实现代码的复用。 2、Java中如何实现继承?  答:Java类通过extends关键字实现继承,所有的类都间接或者直接继承...
  • linruiting
  • linruiting
  • 2016年05月20日 17:10
  • 630

Python高级特性(1):Iterators、Generators和itertools

【译注】:作为一门动态脚本语言,Python对编程初学者而言很友好,丰富的第三方库能够给使用者带来很大的便利。而Python同时也能够提供一些高级的特性方便用户使用更为复杂的数据结构。本系列文章共有三...
  • rhythmdiao
  • rhythmdiao
  • 2014年05月04日 15:05
  • 342

Hibernate高级特性

Hibernate高级特性描述如下: 1.Hibernate持久化实现,细节包括:实体对象的生命周期,实体对象识别,数据缓存,事务管理以及持久层操作 2.Hibernate回调与拦截机制,细节包括:L...
  • mawming
  • mawming
  • 2015年04月01日 16:46
  • 432

java高级特性

第六天: 教学任务:         第六章  高级特性, 共 39 个slide(132-171); 目标: -------------------------------...
  • jakeswang
  • jakeswang
  • 2016年01月25日 11:10
  • 515

JVM高级特性整理

原文地址:http://blog.csdn.net/shiyuezhong/article/details/50777134 1.1991年开始启动,java的前身oak,james gosling博...
  • tanga842428
  • tanga842428
  • 2016年10月18日 17:09
  • 449

【学习总结】java高级特性之四种JAVA内部类总结

标题:java内部类 内部类:在JAVA中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。广泛意义上的内部类一般来说包括这四种:成员内部类、静态内部类、局部内部类、匿名内部类。 ...
  • heccmm
  • heccmm
  • 2016年12月20日 18:13
  • 383

jvm高级特性整理

1.1991年开始启动,java的前身oak,james gosling博士;1995年改名java;1996年jdk1.0发布;2002年jdk1.4发布,走向成熟;2004年jdk1.5发布,加入...
  • shiyuezhong
  • shiyuezhong
  • 2016年03月02日 08:35
  • 1409

面向对象高级特性

static的含义继承的规则子类实例化的过程方法的覆盖final关键字抽象类的特性接口的规范 静态修饰符static static可以修饰的元素 属性---共享方法---访问的方...
  • qq_29337223
  • qq_29337223
  • 2017年05月04日 16:48
  • 203
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hibernate高级特性_1
举报原因:
原因补充:

(最多只允许输入30个字)