hibernate 对象状态问题

问题描述

select出来的对象放在集合里,在从集合里取出来,对象是什么状态?可以直接set么?

解决方案

前两个回答的补充,fudan_ly的回答不完全正确,update的作用是马上触发这个更新。孙宁振的回答也不正确,确实是set引发的update,但是要到事务提交的时候才会触发update sql的执行。完整回答如下:假设你的代码是在一个事务中,取出的对象就是Hibernate的代理对象,一旦事务结束,Hibernate会判断当前的对象是否set过新的值,有的话就触发update语句,如果显示的执行update,只不过是提前触发update的执行而已。
解决方案二:
是持久态,可以直接set,set的同时就会同步到数据库
解决方案三:
先用一个对接接收 A a = (A)list(i);在用a set 值 再update a 就可以了

时间: 2024-10-26 17:39:02

hibernate 对象状态问题的相关文章

【HIBERNATE框架开发之五】HIBERNATE对象的三种状态&&SESSION的常用方法

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/hibernate/814.html  1. Hibernate对象的三种状态:(图解如下:)   如图所示,Hibernate对象有三种状态,1.Transient  2.Persistent 3.Detached; 三种状态的区别如下: 1. 当对象处于Transient时,只在内存中有一个对象,没ID,而且在缓存和数据库中没有: 2.

Hibernate对象的状态

问题描述 Hibernate对象有那些状态,分别是怎样转换的,比如说,瞬时状态转为持久状态 解决方案 解决方案二:临时状态:刚new的,不在session管理范围内,数据库中没有对应记录.持久化状态:已经被持久化了,并且当前在session的管理范围内,数据库中有相应的记录.删除状态:当前与一个session关联,但对象实例已经从session的缓存中被删除,在数据库中有相应的记录,session计划执行一条delete语句.游离状态:已经被持久化,但当前不在session的管理范围内,也就是当

Java Hibernate对象(瞬时态,持久态,脱管态)详解_java

Java Hibernate对象            由于最近学习Java Hibernate,这里对Java Hibernate对象的几种状态进行了资料整理,  有兴趣的朋友可以看下. 瞬时(transient):数据库中没有数据与之对应,超过作用域会被JVM垃圾回收器回收,一般是new出来且与session没有关联的对象. 持久(persistent):数据库中有数据与之对应,当前与session有关联,并且相关联的session没有关闭,事务没有提交: 持久对象状态发生改变,在事务提交时

NHibernate之旅(21):探索对象状态

本节内容 引入 对象状态 对象状态转换 结语 引入 在程序运行过程中使用对象的方式对数据库进行操作,这必然会产生一系列的持久化类的实例对象.这些对象可能是刚刚创建并准备存储的,也可能是从数据库中查询的,为了区分这些对象,根据对象和当前会话的关联状态,我们可以把对象分为三种: 瞬时对象:对象刚刚建立.该对象在数据库中没有记录,也不在ISession缓存中.如果该对象是自动生成主键,则该对象的对象标识符为空. 持久化对象:对象已经通过NHibernate进行了持久化,数据库中已经存在对应的记录.如果

[Nhibernate]对象状态

目录 写在前面 文档与系列文章 对象状态 瞬时态(Transient) 持久态(Persistent) 托管态(Detached) 对象状态转换 总结 写在前面 前面两篇文章介绍了SchemaExport工具的使用,使用该工具可以根据映射文件生成数据库架构,这篇文章将介绍nhibernate中的三种对象状态. 在程序运行过程中,使用对象的方式操作数据库的同时,必然会产生一系列的持久化对象.这些对象可能是刚刚创建并准备进行存储的,也有可能是从数据库进行查询得到的,为了区别这些对象,根据对象和当前S

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

就可以让该方法的原子性得到保证. 4)由于3)的方式应用十分普遍,用spring AOP 对 service 层进行事务控制就更简单了,上面三行代码甚至都不必写.   注意:永远不在DAO的方法内做开启session.打开事务.提交事务.释放session这些事,一般来说这不是什么好习惯.一般交给Spring AOP 容器去做事务的管理.   能否不使用事务保存对象 Hibernate3.3为了提倡大家使用事务,把默认的setAutoCommit设为false,所以,不使用事务也可以实现对象保存

Hibernate实体状态问题:临时状态、托管状态

问题描述 UserInfouserInfo=newUserInfo();Sessionsession=HibernateSessionFactory.currentSession();Transactiontx=session.beginTransaction();①session.load(userInfo,newLong(11117));②session.delete(userInfo);tx.commit();HibernateSessionFactory.closeSession();此

webservice+hibernate对象关系问题

问题描述 我用webservice调用接口,而接口中的数据读取是通过hibernate的要是一个对象的配用关联关系的时候,好比关联了一个外键集合,此时的在对对象进行检索的时候我会把外键中的内容也加载了就会包内存溢出的错误,而不配置关联关系的时候就没问题,希望有这方面经验的兄弟提醒下是哪里的问题 解决方案 解决方案二:没有办法帮到你.不好意思.

hibernate+spring mvc, 解决hibernate 对象懒加载 json序列化问题

引用地址 在使用Spring MVC时,@ResponseBody 注解的方法返回一个有懒加载对象的时候出现了异常,以登录为例:   Java代码   @RequestMapping("login")       @ResponseBody       public Object login(@RequestParam String username,@RequestParam String password){           List<User> list=user