Hibernate学习笔记---Transient、Persistent、Detached三个状态
来源:互联网 发布:yahoo股票数据接口 编辑:程序博客网 时间:2024/05/21 00:17
Transient、Persistent、Detached是Hibernate三个核心的状态:
---------------------------------------------------------------------------
Transient状态最大的特征是:
* 在数据库中没有与之匹配的数据
* 没有纳入session的管理
Persistent状态最大的特征是:
* 在数据库中有与之匹配的数据
* 纳入了session的管理
* 在清理缓存(脏数据检查)的时候,会和数据库同步
Detached状态最大的特征是:
* 在数据库中有与之匹配的数据
* 没有纳入session的管理
---------------------------------------------------------------------------
如下面的两个图(中英文对照)
以下是一段用于说明这三个状态的代码:
package com.ahuzl.hibernate;
import java.util.Date;
import org.hibernate.Session;
import org.hibernate.Transaction;
import junit.framework.TestCase;
publicclass SessionTestextends TestCase {
public void testSession(){
Session session = null;
Transaction tx = null;
User user = null;
try {
session = HibernateUtils.getSession();
tx = session.beginTransaction();
//Transient状态,临时状态,一经save就会转变到Persistent状态
user = new User();
user.setName("中田");
user.setPassword("nakada");
user.setCreateTime(new Date());
user.setExpireTime(new Date());
//Persistent状态,持久化状态(数据库中有相同的值与之对应),当属性发生改变时,hibernate会自动与数据库同步,不需要update
session.save(user);
user.setName("幸島");
tx.commit();
}catch (Exception e){
e.printStackTrace();
tx.rollback();
}finally {
HibernateUtils.closeSession(session);
}
//Detached状态,游离状态,session关闭之后,便由persistent状态变为Detached状态
try{
session = HibernateUtils.getSession();
session.beginTransaction();
user.setName("幸島");
//在Detached状态下,更新对象的属性,需要update才能反映到数据库
session.update(user);
session.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
session.getTransaction().rollback();
}finally{
HibernateUtils.closeSession(session);
}
}
}
hibernate annotation 的实体类中如果存在数据库中没有的字段,需要在这个字段中加上@Transient注释
- Hibernate学习笔记---Transient、Persistent、Detached三个状态
- Transient、Persistent、Detached三个状态
- hibernate:transient、persistent、detached状态
- 系统学习hibernate之三:transient、persistent、detached状态
- Hibernate学习之Transient、Persistent、Detached三种状态
- Hibernate 笔记3 关于SessionFactory,Session 以及 三大状态(Transient、Persistent、Detached)
- Hibernate:transient、persistent、detached状态转换图(转载)
- Hibernate实体3种状态Transient/Persistent/Detached
- 【hibernate框架】对象的三种状态Transient-Persistent-Detached
- Hibernate 对象的三种状态 transient persistent detached
- Hibernate实体3种状态Transient/Persistent/Detached
- Hibernate的对象的三种状态 瞬时态(Transient 持久态(Persistent 脱管态(Detached
- 【SSH快速进阶】——探索Hibernate对象的三种状态:Transient、Persistent、Detached
- hibernate中的三种状态:瞬时态(Transient),持久态(Persistent),脱管态(Detached)
- Hibernate三种状态(Transient、Persistent、Detached)各种保存(save,persist,update,saveOrUpdte,merge,flush,lock)区别
- Hibernate三种状态(Transient、Persistent、Detached)各种保存(save,persist,update,saveOrUpdte,merge,flush,lock)区别
- Hibernate三种状态(Transient、Persistent、Detached)各种保存(save,persist,update,saveOrUpdte,merge,flush,lock)区别
- hibernate中对象的3种状态——瞬时态(Transient)、 持久态(Persistent)、脱管态(Detached)
- ZooKeeper中的节点故障处理机制(2)
- 部署描述符与目录的默认网页
- 虚拟目录的映射方式
- 如何用grep的正则表达式匹配搜索回文单词
- Android 动态切换全屏和非全屏模式
- Hibernate学习笔记---Transient、Persistent、Detached三个状态
- 动态网站开发规范
- 周二
- 2011.10.10-Jsp初步
- 楼主辛苦了
- 2011.10.11WEB
- undefined reference to `__gxx_persona...
- pow
- 【2011-10-07】创建一个表示汽车的JavaBean