`
wangtong40
  • 浏览: 252977 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hibernate托管对象

    博客分类:
  • ORM
阅读更多

 

<!-- [if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning/> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL/> <w:BalanceSingleByteDoubleByteWidth/> <w:DoNotLeaveBackslashAlone/> <w:ULTrailSpace/> <w:DoNotExpandShiftReturn/> <w:AdjustLineHeightInTable/> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:UseFELayout/> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!-- [if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--> <!-- [if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style> <![endif]-->

<!-- [if !supportLists]-->1、  <!-- [endif]-->重附被修改的托管实例

托管实例可以通过在托管对象上调用 update() 方法,被重附到新的 session( 由新的持久化上下文托管 )

   

 

       session.update(item);
 

 

 

注:使用 update() 方法会存在强制更新数据库的问题。

<!-- [if !supportLists]-->2、  <!-- [endif]-->重附未被托管的实例

可以使用 lock() 方法吧对象与 session 和它的持久化上下文关联起来,不强制更新。

   

 

       session.lock(item, LockMode.NONE);
 

 

 

<!-- [if !supportLists]-->3、  <!-- [endif]-->使托管对象变成瞬时

重附对象到 session ,然后计划删除对象。

 

Session.delete(item) ;
 

 

 

<!-- [if !supportLists]-->4、  <!-- [endif]-->合并托管对象的状态

拷贝当前的对象的状态到相同标志符的持久化对象的状态。如果当前关联的 session 中没有持久化对象, Hibernate 会加载该对象,并返回这个持久化对象。如果给定的对象没有保存,则 Hibernate 保存该副本,返回这个新持久化的对象,但给定的对象并没有和 session 关联。如果指定级联风格为 merge ,则会级联关联对象。

合并故名思议就是当存在一个托管对象和非托管对象主键相同时,可以用这种方式将非托管对象进行加载。

 

Item item2 = (Item)session.get(Item.class,new Long(1));

Item item3 = (Item)session.merge(item);

注:item的id=1

(item == item2) //False

(item == item3) //False

(item2 == item3)//True

 

分享到:
评论

相关推荐

    精通Hibernate:java对象持久化技术

    - **对象状态**:瞬时态、持久态、托管态和脱管态。 - **CRUD操作**:创建(save/insert)、读取(get/load)、更新(update)和删除(delete)对象。 - **查询语言**:HQL(Hibernate Query Language)和...

    精通Hibernate:Java对象持久化技术详解

    6. **实体生命周期管理**:Hibernate自动管理对象的状态,包括瞬态、持久化、托管和脱管四种状态,以及它们之间的转换。 7. **多对一、一对多、多对多关系映射**:Hibernate支持复杂的关联关系映射,如单向关联、...

    Hibernate 对象持久化

    在Hibernate中,对象的生命周期包括瞬时态、托管态、持久态和脱管态。通过Hibernate,我们可以轻松地将对象从内存中保存到数据库,或者从数据库中加载到内存。 **三、Hibernate配置** 使用Hibernate,首先需要配置...

    hibernate 3.6 中文 chm

    9. **实体生命周期**:Hibernate管理对象的生命周期,包括瞬时态、持久态、托管态和游离态。理解这些状态转换有助于避免编程陷阱。 10. **一对多、多对一、一对一和多对多关系映射**:Hibernate支持多种关联映射,...

    北大青鸟Hibernate学习资料

    Hibernate中的对象有四种状态:瞬时态、持久态、托管态和删除态。理解这些状态对于管理和跟踪对象的生命周期至关重要。同时,文档《Hibernate对象状态及一对多关联.doc》详细介绍了如何设置和管理一对多关联,这种...

    hibernate3必要jar包

    8. **实体生命周期**:Hibernate管理实体的生命周期,包括瞬时态、持久态、托管态和脱管态,以及相应的转换过程。 9. **DAO(Data Access Object)模式**:在实际应用中,通常会结合DAO模式使用Hibernate,创建专门...

    SSH整合中 hibernate托管给Spring得到SessionFactory

    hibernate托管给Spring得到SessionFactory”和描述“Spring文件中的 SessionFactory中 加入为了能得到同一个Session”表明本文要讨论的是在使用Spring框架整合Hibernate时,如何实现Spring管理Hibernate的...

    Hibernate实战

    实体管理是Hibernate中的重要部分,书中会详细介绍如何定义实体类,使用注解来声明属性与数据库字段的映射,以及如何实现对象的生命周期管理,包括瞬时态、持久态、托管态和游离态。此外,还会讲解实体间的一对一、...

    基于hibernate的简单留言本

    4. **对象状态管理**: Hibernate管理对象的瞬时、持久化、托管和脱管四种状态,确保数据的一致性。 5. **HQL与SQL的区别**: Hibernate查询语言(HQL)是面向对象的,而SQL是面向关系的。HQL可以直接操作对象,避免...

    1对象持久化与hibernate基础共48页.pdf.zi

    5. 对象状态:Hibernate识别四种对象状态:瞬时态、持久态、托管态和脱管态,每种状态对应不同的生命周期和行为。 6. 注解支持:Hibernate除了传统的XML配置外,还支持使用Java注解进行映射,使代码更加简洁。 在...

    Hibernate面试题专栏 - 最全的Hibernate面试题, Hibernate笔试题, Hibernate问题

    - **持久化状态**: 实例可以处于瞬时态、托管态和持久态,Hibernate负责管理这些状态转换。 - **CRUD操作**: Create(创建)、Read(读取)、Update(更新)、Delete(删除),Hibernate提供了便捷的API来实现这些...

    Hibernate依赖包 所有的

    10. **实体生命周期**:Hibernate管理对象的生命周期,包括瞬时态、持久态、托管态和游离态,理解这些状态对优化性能和处理并发问题至关重要。 11. **关联映射**:包括一对一、一对多、多对一、多对多等关联关系,...

    hibernate-5.2.10最新jar包

    Hibernate将对象分为四种状态:瞬时态、持久态、托管态和游离态,理解这些状态对于正确使用Hibernate至关重要。 5. Hibernate映射机制: 使用XML或注解来定义对象和表之间的映射关系,例如@Entity、@Table、@Id、...

    Hibernate源码

    Hibernate是Java领域中一款广泛应用的关系型数据库对象映射框架,它简化了开发人员与数据库之间的交互,通过ORM(Object-Relational Mapping)技术将Java对象转换为SQL操作,从而实现数据持久化。Hibernate源码分析...

    hibernate_reference中文版和Hibernate中文手册

    6. 对象状态:Hibernate区分了瞬时、持久化、托管和脱管四种对象状态,理解这些状态有助于正确管理对象的生命周期。 7. 关联映射:包括一对一(@OneToOne)、一对多(@OneToMany)、多对一(@ManyToOne)、多对多...

    hibernate3.6.jar

    7. **实体生命周期管理**:Hibernate 理解对象的生命周期,包括瞬时态(Transient)、持久态(Persistent)、托管态(Managed)和游离态(Detached)。这有助于正确管理对象状态,避免并发问题。 8. **关联映射**:...

    Hibernate update问题

    在Hibernate中,对象有四种状态:瞬时、持久化、托管和detached。当你从数据库加载对象并修改后,如果关闭Session,对象会变为detached状态。在这种情况下,直接调用`update()`不会工作,因为Hibernate无法识别该...

    hibernate3.1

    Hibernate 3.1将对象分为四种状态:瞬时态、持久态、托管态和脱管态。了解这些状态及其转换对于理解和控制对象的生命周期至关重要。 六、 Hibenate实例与使用手册 压缩包中可能包含的“hibernate实例”是演示如何...

    hibernate中文开发手册

    9. **实体生命周期**:Hibernate管理对象的生命周期,包括持久化、瞬时、托管和游离状态。手册会阐述这些状态的意义,以及在不同状态下对象的行为。 10. **实用工具与扩展**:除了基本功能,Hibernate还提供了许多...

    传智播客hibernate源码.rar

    Hibernate将对象分为四种状态:瞬时态、持久态、托管态和脱管态。理解这些状态及其转换对于正确使用Hibernate至关重要。 六、查询语言HQL与 Criteria API HQL(Hibernate Query Language)是Hibernate提供的面向...

Global site tag (gtag.js) - Google Analytics