Transient、Persistent、Detached是Hibernate三个核心的状态:
---------------------------------------------------------------------------
Transient状态最大的特征是:
* 没有id
* 内存中有对象,数据库中没有,session缓存中没有
* 没有纳入session的管理
Persistent状态最大的特征是:
* 存在id
* 在数据库中有与之匹配的数据
* 纳入了session的管理
Detached状态最大的特征是:
* 存在
* 在数据库中有与之匹配的数据
* 脱离session的管理
---------------------------------------------------------------------------
package com.ahuzl.hibernate;
import java.util.Date;
import org.hibernate.Session;
import org.hibernate.Transaction;
import junit.framework.TestCase;
public class SessionTest extends 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 实体状态 瞬态(transient) 持久化(persistent) 脱管(detached) 转换
而且关于实体对象的生命周期也有很多概念不清,分不清transient、persistent、detached的区别,只是知道PO、VO这样的通俗叫法。其实这些概念都很简单,Hibernate的javadoc写的都很清楚,只需看看就能明白。
Part 3: Electrical transient transmission by capacitive and inductive coupling via lines other than supply lines 道路车辆—传导和耦合引起的电气干扰—第 3 部分:通过除供电线路以外的线路通过电容和电感...
Part 4: Electrical transient conduction along shielded high voltage supply lines only 道路车辆—传导和耦合引起的电气干扰—第 4 部分:仅沿屏蔽高压电源线的电气瞬态传导 本文件规定了测试方法和程序,以...
瞬时对象(Transient Objects)持久化对象(Persist Objects)、离线对象(Detached Objects)、 Java对象在JVM中的生命周期 理解Session的缓存 在Hibernate应用中Java对象的状态 Session的保存、更新、删除、查询...
标题:Transient analysis of 1D inhomogeneous media by dynamic inhomogeneous finite element method 基于动态非均匀有限元方法的一维非均匀介质瞬态分析
本篇文章主要介绍了深入理解hibernate的三种状态 ,主要包括了transient(瞬时状态),persistent(持久化状态)以及detached(离线状态),有兴趣的同学可以了解一下
hibernate 注解所需的jar包 ejb3-persistence.jar hibernate-annotations.jar hibernate-commons-annotations.jar
Road vehicles — Electrical disturbances from conduction and coupling — Part 2: Electrical transient conduction along supply lines only 道路车辆—传导和耦合引起的电气干扰—第 2 部分:仅沿电源线的...
Hibernate管理的三种状态 Transient(瞬时态) 使用new关键字,没有持久化,没有缓存到Session中 Persistent (持久态) 特点:已经持久化,添加到Session缓存中 Detached(游离态 特点:已被持久化,但不在...
瞬态 DNS 项目是一个公共项目,用于开发和维护公共可行的 DNS 系统,最初在端口 53 上发现的 DNS 系统仅用于临时部署,但最终部署在跨网之外的其他网络中,这将包括:通过命名约定和序列化以及路由翻译代理 + 网络...
串联 RLC 的瞬态响应 - MATLAB/Simulink 中串联 RLC 电路的正弦响应
串联RL的瞬态响应- MATLAB/Simulink中串联RL电路的阶跃响应
串联 RLC 的瞬态响应- MATLAB/Simulink 中串联 RLC 电路的阶跃响应
上述实体映射到数据库中的时候对应 Order 实体Bean, 其具有 id, lastUpdate, lastUpdater 三个属性。如果没有@MappedSuperclass 注解,则父类中属性忽略,这是 Order 实体 Bean 只有 id 一个属性。 映射实体Bean的...
瞬态响应 - MATLAB/Simulink 中串联 RL、RC、LC 和 RLC 电路的正弦响应
传热学小案列,一维非稳态传热分析,推荐大家学习
RL,RC&RLC系列的瞬态响应-MATLAB / Simulink中RL,RC&RLC系列电路的阶跃响应
java关键字transient
transient stability matlab