Hibernate三态,游离态 游离态氧元素
Hibernate对象状态
临时(Transient) - 由new操作符创建,且尚未与Hibernate Session 关联的对象被认定为临时(Transient)的。临时(Transient)对象不会被持久化到数据库中,也不会被赋予持久化标识(identifier)。 如果临时(Transient)对象在程序中没有被引用,它会被垃圾回收器(garbage collector)销毁。 使用Hibernate Session可以将其变为持久(Persistent)状态。(Hibernate会自动执行必要的SQL语句)
持久(Persistent) - 持久(Persistent)的实例在数据库中有对应的记录,并拥有一个持久化标识(identifier)。 持久(Persistent)的实例可能是刚被保存的,或刚被加载的,无论哪一种,按定义,它存在于相关联的Session作用范围内。 Hibernate会检测到处于持久(Persistent)状态的对象的任何改动,在当前操作单元(unit of work)执行完毕时将对象数据(state)与数据库同步(synchronize)。 开发者不需要手动执行UPDATE。将对象从持久(Persistent)状态变成瞬时(Transient)状态同样也不需要手动执行DELETE语句。
游离(Detached) - 与持久(Persistent)对象关联的Session被关闭后,对象就变为游离(Detached)的。 对游离(Detached)对象的引用依然有效,对象可继续被修改。游离(Detached)对象如果重新关联到某个新的Session上, 会再次转变为持久(Persistent)的(在Detached其间的改动将被持久化到数据库)。 这个功能使得一种编程模型,即中间会给用户思考时间(user think-time)的长时间运行的操作单元(unit of work)的编程模型成为可能。 我们称之为应用程序事务,即从用户观点看是一个操作单元(unit of work)。
Hibernate中对象的游离状态是指Session关闭之后,持久化对象变成离线对象,离线对象就不能同数据库同步,也不再受Hibernate管理。操作 处于游离态对象 经常会报 session已关闭的错误。
假设场景:
有两个类, Team, Person. 映射关系是Team一对多Person, 采用lazy fetch策略。
session begin
Team t = *Dao.get()
session end
t.getPersons()// 出错
如果是用spring管理session的情况,事务外操作t.getPerons()也跟上面情况一样。
这种情况在生产环境多表现为在jsp页面操作 t对象时出错。
解决方法:
1. 取消lazy fetch策略
缺点:会导致过多的数据库访问,因为是一对多的情况。
2. 在事务内就先把关联的对象取出
缺点:会导致service层方法不统一,因为要分开取出与不取出的情况。
3. 使用spring的 openSessionInview机制
缺点: session打开的时间比较长, 使用不好可能会导致out of memory
一个游离态的对象转换为持久战态,有以下几种方法:
1、session.saveOrUpdate(object)。这语句会把游离态的PO转为持久态的PO并提交给数据库
2、session.merge(object)。这语句会把游离态的PO转为持久态的PO,并进行合并操作。
3、session.lock(object, LockMode.NONE)。这语句只会把游离态的PO转为持久态PO,不作其他操作。不过,PO必须是没有修改过的,这方法挺适合做一个应用层
更多阅读
进程状态 系统感知进程的实体
三态模型:在多道程序系统中,进程在处理器上交替运行,状态也不断地发生变化。进程一般有3种基本状态:运行、就绪和阻塞。(1)运行:当一个进程在处理机上运行时,则称该进程处于运行状态。处于此状态的进程的数目小于等于处理器的数目,对于单处理
话说74HC245和74HC244 74hc244和74hc245
74HC245是三态8位总线收发器。DIR是控制是A-B还是B-A(收,还是发)
分析弱上拉电阻遇到问题 弱上拉电阻
所谓的弱上拉,就是又要上拉,又不强烈。一般来说,门电路的输出都是VDD—上晶体管—下晶体管—地串联(直立看)的结构,输出是两个晶体管的中间。这两个晶体管分别通断,可形成4种状态:上通下不通——输出高电平(第一态),上不通下通——输出低电平(第
《忽如一夜春风来》等7篇作文题分析与例文 忽如一夜春风来的意思
(《忽如一夜春风来》《曲与直》《蜗牛的畅想》《人生三态》《美丽的错误》《大与小》《奔》7篇作文题分析与例文)第一题:忽如一夜春风来一、命题回放以“忽如一夜春风来”为题,写一篇文章。要求:1、立意自定;2、除诗歌外,文体自选;3、不少于
Kconfig的用法 kconfig depends on
Kconfig的中文资料资料如下:以树的形式组织的,而且每个选项都有其自己的依赖关系。这些依赖关系决定了选项是否是可见的。父选项可见,子选项才能可见。类型定义:"bool"/"tristate"/"string"/"hex"/"int"(bool:布尔类型,tristate三态:内建、