Hibernate对象状态
来源:互联网 发布:数控折弯机编程操作 编辑:程序博客网 时间:2024/06/07 14:59
Hibernate对象状态:
临时(transeint):一般为new出的对象,与数据库没有对应,跟session没有关联
持久化(persist):对象在session管理之中,与数据库对应
特点:有唯一标识符(OID)
对象的改变同步到数据库
游离(detached):数据库中有对应记录,但对象不再session管理中,修改此状态对象数据库不会有变化
删除(removed):执行了delete()后的对象
状态间的转换关系:
session中的方法:
一、操作实体对象的
save() 将临时状态变成持久化状态 insert into...
update()将游离状态变成持久化状态 update...
delete() 将持久化或游离状态变成删除状态 delete... 如果删除的对象不存在,会抛出异常
二、查询实体对象的
get() 获取数据,持久化状态 select... 会马上执行sql语句,如果对象不存在,抛出空指针异常
返回的原始对象
load() 获取数据,持久化状态 select... 不会马上执行sql语句
返回的是代理对象,要求类不能是final,否则不能生成子类代理,就不能使用懒加载
让懒加载失效的两种方法:1.类由final修饰,2.在映射文件的class标签中设置lazy="false",lazy默认为true
createQuery()
createCriteria()
三、操作缓存的
clear()
evict()
flush()
session大批量保存
@Testpublic void testBatchSave(){Session session=sessionFactory.openSession();Transaction tx=session.beginTransaction();//操作//操作大量数据,防止session中对象过多而发生内存溢出for(int i=0;i<30;i++){User user =new User();user.setName(i+"test");session.save(user);if(i%5==0){session.flush();//先刷新session.clear(); //再清空}}tx.commit();session.close();}
0 0
- hibernate对象状态
- hibernate中的对象状态
- Hibernate中对象状态
- Hibernate中的对象状态
- hibernate的对象状态
- hibernate对象状态
- Hibernate对象状态
- Hibernate对象状态
- Hibernate对象状态是什么
- Hibernate对象的状态
- Hibernate的对象状态
- hibernate对象状态
- Hibernate 对象状态
- hibernate对象状态
- Hibernate对象状态
- Hibernate对象状态
- Hibernate对象状态
- hibernate 对象状态
- linux下modprobe: module ath.ko not found in modules.dep
- C/C++ memmove与memcpy的区别及实现
- 完美数列
- servlet四大域总结
- 2016.03.27培训日记
- Hibernate对象状态
- 求生之路
- 1.关系性数据库及SQL
- Java中堆内存和栈内存详解
- hdu1757 A Simple Math Problem(矩阵快速幂)
- Image-Loader
- 揭开A F N e t w o r k i n g 框 架 的神秘面纱 (上)
- 计算几何模板啦啦啦啦
- 查Oracle的隐藏参数---创建视图v$parameter