对象的三种状态(hibernate的session的get和load方法的区别,session的常用方法,session缓存)
来源:互联网 发布:svm算法有哪些变体 编辑:程序博客网 时间:2024/05/21 02:34
对象的3中状态:1.transient:内存中有一个对象,没id,Session缓存中无该对象的引用,数据库中没有。
2.persistent:内存中有一个对象,有id,Session缓存中有该对象的引用,数据库中有。
3.detached:内存中一个对象,有id,Session缓存中无该对象的引用,数据库中有。
Session缓存:当一个对象通过new到对内存时,session中并没有指向该对象的引用,当调用session的方法对该对象进行操作后。Session中会有一个map对象,它存放了该对象的一个引用,这个存放对象引用的内存,就是session的缓存。
Session的常用方法有(Crud):
Save()
Delete()
Load()
Get()
Update()
Merge()
saveOrUpdate()
flush()
get和load()区别:不存在对应记录时表现不一样。load返回的代理对象,也就是说load得到的对象并需要得到的类本身,而是该类的一个子类,当真正用到这个对象时时才发出sql,然后到数据库中查找,这在设计模式中称为动态代理而get是直接发送sql语句,他返回的对象就是该类本身。
update()
1.更新detached对象,更新完后变成persistent对象
2.更新transient对象会报错,但只要指定该transient对象的id且数据库中相应的记录,就可以更新成功。
3.更新数据库中有对应id的transient对象可以
4.如果一个persistent状态对象,设定不同状态就会发生更新。当数据库记录与session缓存不一致时就会发生更新。
saveOrUpdate(): clear():无论是get还是load方法从数据库中取记录,都会先查找缓存(一级缓存),如果缓存中没有相关对象,则会到数据库中查找。调用clear方法可以清除session的缓存 flush():可以强制进行从内存到数据库的同步。session.setFlushMode(FlushMode.AUTO);设置FlushMode find():已经过时
- 对象的三种状态(hibernate的session的get和load方法的区别,session的常用方法,session缓存)
- Hibernate session.get()和session.load()方法的区别
- hibernate session的get和load方法
- Session对象的load()方法和get()方法的区别
- Hibernate对象的三种状态&&Session的常用方法
- Hibernate中session的get和load方法的区别
- Session的get和load方法区别
- Hibernate中session.get()和session.load()方法的异同
- hibernate Session的get和load方法区别
- Hibernate Session中get()和load()方法的区别
- Session.load()和Session.get()方法的区别
- Hibernate三种状态和Session常用的方法
- Hibernate三种状态和Session常用的方法
- Hibernate入门BLOG [三、session的常用方法和hibernate对象的3种状态]
- hibernate缓存初识之session的get()与load()方法
- hibernate一级缓存session之get和load的区别
- hibernate中使用session对象获得持久化对象get和load方法的区别
- Hibernate中Session的load()和get()方法
- js特效
- 设计模式初学者系列
- ORA-16796: one or more properties could not be imported from the database [ID 358040.1]
- 开博感想
- .NET平台构造块简介
- 对象的三种状态(hibernate的session的get和load方法的区别,session的常用方法,session缓存)
- SIP Stack Research
- Hibernate中如何只更新修改过的字段,未修改的字段不用更新??(3中方法)
- C++的虚伪
- ffmpeg(From SVN)移植过程(含SDL、lame、x264等lib)
- Oracle表空间设计理念
- 在Visual Studio下维护嵌入式系统C源码的一个实例
- 那位大哥能告诉我,我下载的资料在哪里找吗
- __declspec(naked)和__asm编写实践总结