Hibernate 一些概念 对象的三种状态

对象在第一种状态
Teacher t = new Teacher();
t.setName(“张三”);
t.setAge(35);
 
Session session = sessionFactory.getCurrentSession();
session.beginTransaction();
对象在第二种状态
session.save(t);
session.getTransaction().commit();
对象在第三种状态,在commit之后。
 
 
1.transient: 内存中新new出的一个对象,没 ID,缓存里没有
2.persistent:内存中有,缓存中有,数据库有(ID)
3.detached:内存中有,缓存没有,数据库中有。
 
 
 
Hibernate get load
 
1.get 直接去数据库取记录
2.load 返回的是代理对象,等真正用到内容时才发出sql 

 

save() 、saveOrUpdate() 实验区别展示

数据库 Tag 表中,已经存在一条记录,主键ID:1, Tag:爱情。表的主键策略为自增ID

首先:取的主键为 1 的记录,运行结果中 tot createtime 都值。

其次:使用 saveOrUpdate() 方法 commit,然后再取值,则发现:

tot 和 createtime 都变成0,但是 KW 已经更新,

说明 saveOrUpdate() 使用主键ID 1 去更新了原来的记录,并且是每个字段更新,而不是只更新 KW。

posted @ 2015-09-17 23:33  一瞳孔  阅读(129)  评论(0)    收藏  举报