Hibernate,Session方法使得java对象进入持久化状态;持久化对象特征

以下情况java对象进入持久化状态:

  1. session.save()方法把临时对象转变为持久化对象。
  2. session.load()和session.get()方法得到的对象总是处于持久化状态。
  3. session.update(),saveOrUpdate()和lock()方法使游离对象转变为持久化状态。
  4. Query接口的list()方法返回的list集合中存放的都是持久化对象。
  5. 一个持久化对象关联一个临时对象,在允许级联保存的情况下,Session在清理缓存时,会把这个临时对象也转变为持久化对象。

持久化对象特征

  1. OID不为null,或者version不为null(Hibernate主要通过这两个属性判断对象是不是持久化的);
  2. 位于Session实例的缓存中,也可以说,持久化对象总是被一个Session实例关联。
  3. Session在清理缓存时,会根据持久化对象的属性变化,来同步更新数据库。
时间: 2024-10-08 22:36:17

Hibernate,Session方法使得java对象进入持久化状态;持久化对象特征的相关文章

hibernate session缓存和java对象生命周期

一.java对象生命周期 1.在java中,使用new关键字,创建一个java对象,jvm就为这个对象分配一块内存空间.只要这个变量被引用,他就一直存在于内存中.如果没有被任何变量引用(包括间接引用),那么这个对象就会被垃圾回收器回收.下面用一段代码来解释: Customer c=new Customer(); Order o1=new Order(); Order 02=new Order(); o1.setCustomer(c); c.getOrders().add(o1); o1=null

EJB 有状态的对象和无状态的对象

有状态Bean: @Stateful @Remote public class StatefulEjbBean implements StatefulEjb{ private int state; @Override public void compute(int i) { state=state+i; } @Override public int getResult() { return state; } } 无状态Bean: @Stateless @Remote public class S

Hibernate session 方法总结

1 session.save(Object object); 增加 2 session.update(Object object);修改 3 session.saveOrUpdate(Object object);主键字段有值则修改,无则新增. 4 session.update(Object object); 5 session.delete(Object object);删除 6 session.createQuery(String HQL);按HQL语句查询 7 session.create

Hibernate入门(二)之hibernate的内部执行过程,主键生成器,对象的状态

内部执行过程 主键生成器 Identity(常用) 1.表必须支持自动增长机制 2.数据库生成主键 3.不需要在程序中设置主键 Assigned 必须通过程序的方式给值才可以 person.setId(xxx): 一般用于开发的时候测试使用 Increment(常用) 1.如果选择该主键的生成方式,则必须是数字类型 2.先获取主键的最大值,在最大值的基础上加1,形成新的主键 3.效率比较低,因为这种方式会先select表中最大的主键值 4.主键的生成是由hibernate内部实现的 native

hibernate session method

import static org.junit.Assert.*; import java.io.FileInputStream; import java.util.Date; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.hibernate

hibernate映射对象三种状态的分析

一,首先hibernate中对象的状态有 三种:瞬态.游离态和持久态,三种状态转化的方法都是通过session来调用,瞬态到持久态的方法有save().saveOrUpdate(). get().load():持久态到瞬态的方法有delete():游离态到持久态的方法有update().saveOrUpdate(). lock():持久态到游离态的方法有:session.close().session.evict().session.clear(). 二,Hibernate的状态 hiberna

Rhythmk 学习 Hibernate 02 - Hibernate 之 瞬时状态 离线状态 持久化状态 三状态

by:rhythmk.cnblogs.com 1.Hibernate 三种状态: 1.1.三种定义(个人理解,不一定准确):  瞬时状态(transient):    不被session接管,且不存在数据库中的对象的状态,类似于新New一个对象  离线状态 (detached):    数据库中存在而不被session接管  持久化状态(persistent): 对象被session管理且数据库中存在此对象 1.2. 状态之间转换关系图 2 .状态转换以及Hibernate数据库执行过程详解:

第二节 hibernate session基本方法介绍

Hibernate session 对象是和数据库建立连接的对象,session中包含了许多操作数据库的方法,下面一一描述. 1 保存对象到数据库 session.save(); 按照第一节的配置,主键的生成策略为native(数据库自动生成主键),由于数据库使用的是mysql 5,所以是自增的主键生成方式.保存对象时并不需要设置id属性. @Test public void testSave() { try { User user = new User(); user.setBirthday(

SSH学习之Hibernate session的方法全集

我只是知识的搬运工.  转载地址:http://www.cnblogs.com/lukun/archive/2011/03/31/1968937.html#top 原文中有更详细的表格,我在此谨做记录,因为博客中表格排版很难弄,重复修改好几次依然如此,就把表格部分删除了,可以去原文查看. Method Detail 方法详细 getEntityMode  EntityMode getEntityMode () 检索在本次方法的影响的实体模式. Returns: 返回值 本类方法的实体模式. ge