Hibernate对象

Hibernate对象

Hibernate是java (对象关系映射)ORM管理框架; Hibernate对象就是O--java实体;Hibernate通过对实体的管理在不同状态之间的转换来实现关系数据库的映射;

Hibernate对象状态:

瞬时状态:Hibernate中没有和Session做关联的对象实例;

持久化状态:Hibernate中和session关联的对象实例;

游离状态:持久化实例的关联在session关闭之后转台变为了游离状态;

注:1,如何理解对象实例和Hibernate Session 关联?(Session生命周期  缓存  事务)

Session的生命周期便随 session开启 事务开启 缓存创建 事务关闭  session关闭;实例关联主要在于缓存(对于缓存的理解不概述,在这里我们就看做一个Map);对象的关联就是把实例对象进行缓存,想Map中添加一个对象实例的引用,并分配一个ID;

                //初始化一个对象
		HibernateObjectStat stat = new HibernateObjectStat();
		//瞬时对象
		OC oc = stat.new OC();
		//session open  tran start
		Map<String,Object> sessionCacheMap = new HashMap<String, Object>();
		// put for session cache
		//持久化对象
		sessionCacheMap.put("KEY", oc);
		//tran commit,session close,cache remove
		//游离对象
		sessionCacheMap.remove("KEY");

2,关于原生(native)sql  session缓存是不起作用的;

时间: 2024-10-01 05:55:07

Hibernate对象的相关文章

Hibernate对象的CRUD操作

1.  Hibernate对象的CRUD操作 1.1.  对象的三种状态 瞬时(Transient) - 由new操作符创建,且尚未与HibernateSession 关联的对象被认定为瞬时(Transient)的.瞬时(Transient)对象不会被持久化到数据库中,也不会被赋予持久化标识(identifier).如果瞬时(Transient)对象在程序中没有被引用,它会被垃圾回收器(garbage collector)销毁.使用Hibernate Session可以将其变为持久(Persis

Hibernate(3)——实例总结Hibernate对象的状态和ThreadLoacl封闭的session

俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的知识点总结如下: Hibernate的内部执行过程(CRUD) 对象的状态及其转换图和例子 使用JUnit测试 使用getCurrentSession代替openSession ThreadLoacl对象 享元模式 session.update(obj),为保证执行更新,推荐使用session.flush()刷新缓存; 1和2大概总结了Hibernate运行的技术原理,那么现在总结一下它自身的编写过程:如下: 其中本质上主要

hibernate对象三种状态

hibernate里对象有三种状态: 1,Transient 瞬时 :对象刚new出来,还没设id,设了其他值. 2,Persistent 持久:调用了save().saveOrUpdate(),就变成Persistent,有id 3,Detached  脱管 : 当session  close()完之后,变成Detached. 例子程序: Teacher类: 1 package com.oracle.hibernate.id; 2 3 import javax.persistence.Enti

hibernate对象的几种状态

Hibernate 对象的几种状态 临时状态(Transient):new 出来的对象.  对象无 id,缓存和数据库中均没有 游离状态(Detached):内存中有,缓存中没有,数据库中有 id 持久化状态(Persistent):内存,缓存,数据库中均有 id 删除状态: 例: 未入职前   -----> -----> ----> ---->  临时 入职后      -----> -----> ----> ---->  持久化 请假      ----

ORM进阶:Hibernate对象的三大状态

简介 Hibernate负责将实体模型,关联到关系模型.那么在程序运行过程中,如何保证实体对象与数据库中的一致性呢? 首先要了解一下Hibernate对象中的三种状态: 三种状态 临时状态(Transient) 持久状态(Persistent) 游离状态(Detached) 状态的含义 临时状态 在程序中第一次使用该对象.(既然是第一次使用实体对象,那么当然数据库中是没有该记录的) 即:实体模型中存在,但是不被Session管理,数据库中没有该记录. 持久状态 当临时状态的对象,执行save()

hibernate 对象关系映射文件详解

POJO 类和数据库的映射文件*.hbm.xml POJO类和关系数据库之间的映射可以用一个XML文档来定义. 映射文件的扩展名为.hbm.xml 在运行时Hibernate将根据这个映射文件来生成各种SQL语句 通过POJO类的数据库映射文件,Hibernate可以理解持久化类和数据表之间的对应关系,也可以理解持久化类属性与数据库表列之间的对应关系 映射文件说明 hibernate-mapping 类层次:class 主键:id 基本类型:property 实体引用类: many-to-one

hibernate对象的三种状态及转换

hibernate对象的三种状态转换关系图 三种状态 瞬时状态(transient): 通过new创建对象后,对象并没有立刻持久化,  它并未参与数据库中的数据有任何的关联,此时java对象的状态为瞬时状态.session对瞬时状态的对象一无所知,当对象不再被引用时,她的数据也就丢失了, 对象将会被java虚拟机按照垃圾回收机制处理. 持久状态(persistent): 当对象与session关联,被session管理时,它就处于持久化状态.处于持久状态的对象拥有数据库的标志.对象什么时候与se

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

Hibernate对象的三种状态

hibernate中对象的状态有三种:临时态(Transient).持久态(Persistent)和游离态(Detached),三种状态转化的方法都是通过session来调用的,处于三种状态下的对象所具有的特点,总结如下: 临时态:没有被session管理 在数据库中没有与之匹配的记录; 持久态:纳入session管理 在数据库中有与之匹配的记录 当属性发生变化,在清理缓存时(脏数据检查)会自动和数据库同步; 游离态:没有被session管理 在数据库中存在与之匹配的记录. 临时态到持久态的方法