关于hibernate持久化的问题

问题描述

持久化对象的定义是在session缓存中存在该对象,并且在数据库中也有与此对象唯一对应的一条记录但是在事务方法中执行了dataStore.save(obj);obj只是存在session的缓存中,并在insertion中注册了要插入的行为,并没有插入到数据库中这样是不是和持久化对象的定义相违背了但是书上又说的很清楚,经过savefind,load以后的对象都是持久化对象,还望高手解答

解决方案

解决方案二:
需要commit()提交事物才会与数据库同步吧,则也是为什么在存储数据事需要开启事物
解决方案三:
即使是直接向数据库插入数据,在没有提交事务前数据也是只保存在数据库缓存中,事务提交以后才会真正保存在数据库中。savefind,load以后,虽然对象有可能是保存在缓存中的,但是数据已经通过了数据库的检查,可以随时插入到数据库中,若事务没有回滚,肯定回被插入到数据库中。所以称之为持久化对象并不矛盾。
解决方案四:
需要commit()提交事物才会与数据库同步吧,则也是为什么在存储数据事需要开启事物----------1楼

时间: 2024-09-15 08:16:52

关于hibernate持久化的问题的相关文章

【SSH系列】-- Hibernate持久化对象的三种状态

       在上一篇博文中,小编主要简单的介绍了[SSH系列]--hibernate基本原理&&入门demo,今天小编来继续介绍hibernate的相关知识, 大家知道,Java对象的生命周期,是从通过new语句创建开始,到不再被任何引用变量引用结束,结束后它占用的内存将被JVM垃圾回收机制收回.在hibernate中持久化类的对象可以划分为三种状态,分别是瞬态,持久态,脱管态.       一.瞬态(Transient),也叫临时态.处于这种状态的对象具备的特征如下:       a.

Hibernate持久化处理

问题描述 Student类有三个字段:id(主键).name(姓名).age(年龄):我想通过Hibernate把Student实例持久化到数据库中,但是只希望保存id和name字段,age字段不做保存处理.请问有什么方法吗?谢谢各位大神了 解决方案 如果是配置文件Studengt.hbm.xml的话,不写age的配置就行了,如果是注解@的字段,可以加java关键字transient,声明为非持久化字段解决方案二:那你加载的时候需要加载age吗,如果不需要加载age的话 那你在XML配置文件中

hibernate持久化对象的三个状态

              Hibernate中的对象有3种状态,瞬时对象(TransientObjects).持久化对象(PersistentObjects)和离线对象(DetachedObjects也叫做脱管对象).这三个状态的主要区别在两方面:1.session;2.数据库                          下面说一下不同状态的特征:            1.Transient (瞬态)              a) 不在Session的缓存中,不与任何的Session

Hibernate持久化类(Map)集合属性的Key为组件的映射

1.hibernate.cfg.xml  代码如下 复制代码 <!DOCTYPE hibernate-configuration PUBLIC         "-//Hibernate/Hibernate Configuration DTD 3.0//EN"         "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuratio

Java中Hibernate持久化类(map)集合属性的元素为组件的映射

1.hibernate.cfg.xml  代码如下 复制代码 <!DOCTYPE hibernate-configuration PUBLIC         "-//Hibernate/Hibernate Configuration DTD 3.0//EN"         "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuratio

解析Java的Hibernate框架中的持久化类和映射文件_java

持久化类Hibernate的整个概念是采取从Java类属性的值,并将持久到数据库表.一个映射文件Hibernate的帮助确定如何从拉动类的值,并将它们映射与表和相关的域. 其对象或实例将存储在数据库表中的Java类在Hibernate中称为持久化类. Hibernate的效果最好,如果这些类遵循一些简单的规则,也称为普通Java对象(POJO)编程模型.有下列持久化类的主要规则,但是,这些规则并不是必需的. 将所有的持久化Java类需要一个默认的构造函数. 所有类应该包含为了让容易识别对象内Hi

简介Java的Hibernate框架中的Session和持久化类_java

SessionSession对象用于获取与数据库的物理连接. Session对象是重量轻,设计了一个互动是需要与数据库每次被实例化.持久化对象被保存,并通过一个Session对象中检索. 会话中的对象不应该保持开放很长一段时间,因为他们通常不被线程安全的,他们应该被创建并根据需要摧毁他们.这次会议的主要功能是提供创建,读取和删除操作映射的实体类的实例.实例中可能存在以下三种状态之一在给定时间点: 短暂性: 持久化类的未与会话相关联,并在数据库中没有代表性,没有标识值的新实例被Hibernate认

Java Persistence with Hibernate中文版Hibernate实战第2版出版

Java Persistence with Hibernate中文版Hibernate实战第2版出版 图灵出版社官方Hibernate实战(第2版)链接为: http://www.turingbook.com/Books/ShowBook.aspx?BookID=260 书 名: Hibernate实战(第2版) 评论星级: **** 书 号: 978-7-115-17448-2 原 书 名: Java Persistence with Hibernate 原出版社: Manning Publi

Struts+Spring+Hibernate实现上传下载

上传|下载 引言 文件的上传和下载在J2EE编程已经是一个非常古老的话题了,也许您马上就能掰着指头数出好几个著名的大件:如SmartUpload.Apache的FileUpload.但如果您的项目是构建在Struts+Spring+Hibernate(以下称SSH)框架上的,这些大件就显得笨重而沧桑了,SSH提供了一个简捷方便的文件上传下载的方案,我们只需要通过一些配置并辅以少量的代码就可以完好解决这个问题了. 本文将围绕SSH文件上传下载的主题,向您详细讲述如何开发基于SSH的Web程序.SS