`
zhangziyueup
  • 浏览: 1182563 次
文章分类
社区版块
存档分类
最新评论

hibernate 持久化对象

 
阅读更多

    1. //瞬时对象
    2. Personperson=newPerson();
    3. Sessionsession=sessionFactory.getCurrentSession();
    4. session.setName("liuzhao");
    5. session.save(person);
    6. //持久对象
    7. person.getName();
    8. session.close();
    1. Sessionsession=sessionFactory.getCurrentSession();
    2. Transactiontx=session.beginTransaction();
    3. //加载持久对象
    4. Personperson=session.load(Person.class,newLong(1));
    5. //变成瞬时对象
    6. session.delete(person);
    7. person.setName("caixj");
    8. //变成持久对象
    9. session.save(person);
    10. ...
    11. tx.commit()
    12. //脱管对象
    13. session.close();

    Hibernate中通过session提供的不同方法,使Java对象在不同状态间互相转换,Hibernate中定义并支持以下对象状态:瞬时对象、持久对象和脱管对象。

    一、瞬时对象

    一般情况下被Javanew操作符创建的对象,称为瞬时对象。瞬时对象没有和任何数据库数据关联,如果接下来没有被持久化或者被其他的对象所引用,就会被JVM的GC所销毁。

    只有在调用Hibernate session的持久化方法(save()、saveOrUpdate()等)才能把瞬时对象转变成持久对象。

    Java代码

    二、持久对象

    持久对象定义为关联到数据库记录的对象实例,同时具有持久化标识,该标识将持久对象

    和数据库记录关联。持久对象调用delete()方法就会转换成瞬时状态,调用close()、clear

    ()等方法将转换成脱管状态。

    Java代码

    三、脱管对象

    脱管对象是持久对象的延续,此时的对象状态已经不被Hibernate Session 说管理,对象属性和数据库记录不再保持同步。

    在脱管状态下,应用程序对脱管对象的引用依然有效,对象可以继续被修改。在正常情况下,不需要我们显示地进行对象转换,因为Hibernate session被关闭的时候,对象就自动变为脱管对象了。如果需要显示地调用的话,可以调用evict()方法,不过该方法主要是用在Hibernate的缓存管理中。

分享到:
评论

相关推荐

    Hibernate持久化对象的生命周期

    Hibernate持久化对象的生命周期 持久化对象的状态: 瞬时对象(Transient Objects)持久化对象(Persist Objects)、离线对象(Detached Objects)、 Java对象在JVM中的生命周期 理解Session的缓存 在Hibernate应用...

    Hibernate 操纵持久化对象

    **标题:Hibernate 操纵持久化对象** 在Java开发中,Hibernate是一个强大的对象关系映射(ORM)框架,它简化了数据库与Java对象之间的交互。本篇将详细讲解如何使用Hibernate来操纵持久化对象,这对于深入理解...

    hibernate持久化对象生命周期[参照].pdf

    本文将深入探讨Hibernate中的持久化对象生命周期,包括瞬时对象、持久化对象和游离对象的状态转换及其特性。 1. 瞬时对象(Transient Objects) 瞬时对象是指通过`new`操作符创建但尚未与数据库记录关联的Java对象...

    精通hibernate持久化对象技术.pdf

    精通hibernate持久化对象技术.pdf ,一部很经典的书。

    Hibernate操作持久化对象

    Hibernate操作持久化对象Hibernate操作持久化对象Hibernate操作持久化对象Hibernate操作持久化对象Hibernate操作持久化对象

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

    4. **HQL(Hibernate Query Language)**:面向对象的查询语言,类似于SQL,但更接近Java的语法,用于检索和操作持久化对象。 5. **第二级缓存**:Hibernate支持查询结果的缓存,可以显著提高系统性能,特别是对于...

    精通Hibernate:Java对象持久化详解.zip

    《精通Hibernate:Java对象持久化详解》是一本深入解析Hibernate技术的专著,它主要针对Java开发者,旨在帮助他们理解和掌握Java对象持久化的精髓。Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了...

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

    《精通Hibernate:Java对象持久化技术详解》这本书深入剖析了Hibernate这一流行的Java对象关系映射(ORM)框架,旨在帮助开发者全面理解并熟练掌握Hibernate的使用。Hibernate是Java开发中的重要工具,它简化了...

    深入学习Hibernate持久化对象的三个状态

    Hibernate中的对象有3中状态,瞬时对象(TransientObjects)、持久化对象(PersistentObjects)和离线对象(DetachedObjects也叫做脱管对象),下面通过本文给大家分享Hibernate持久化对象的三个状态,一起看看吧

    hibernate持久化技术详解.孙卫琴.代码2

    **hibernate持久化技术详解** Hibernate是一款强大的Java对象关系映射(ORM)框架,它为开发者提供了在Java应用中操作数据库的强大工具。通过Hibernate,开发者可以将数据库操作转化为对Java对象的操作,大大降低了...

    精通Hibernate:Java持久化对象技术详解[第二版]

    《精通Hibernate:Java持久化对象技术详解[第二版]》是一部深入探讨Hibernate框架的专业书籍,旨在帮助Java开发者熟练掌握和运用这一强大的ORM(Object-Relational Mapping)工具。Hibernate是Java开发领域中广泛...

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

    【精通Hibernate:Java对象持久化技术】主要涵盖了Java应用程序的分层体系结构、软件模型以及对象持久化的概念,特别是如何使用Hibernate这一ORM框架进行持久化操作。以下是详细的知识点解析: 1. **应用程序分层...

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

    精通 Hibernate:Java 对象持久化技术详解 第2版 学习Hibernate必备得一本书

    精通 Hibernate_Java 对象持久化技术详解(第2版).pdf

    精通 Hibernate_Java 对象持久化技术详解(第2版).pdf

    Java 精通Hibernate对象持久化技术权威指南

    《Java精通Hibernate对象持久化技术权威指南》是一本深度探讨Java开发中如何高效地使用Hibernate进行对象持久化的专业书籍。本书旨在帮助Java开发者熟练掌握Hibernate框架,实现数据库操作的简化和自动化,提升软件...

    Hibernate数据持久化技术

    在JDO中,首先需要编写POJO,然后通过一个名为Enhancer的工具在编译后阶段对POJO的字节码进行增强,生成对应的持久化对象。这意味着JDO的转换过程发生在编译期间,而Hibernate的转换是在运行时。 Hibernate的优点...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     8.3 Java对象在Hibernate持久化层的状态  8.3.1 临时对象的特征  8.3.2 持久化对象的特征  8.3.3 被删除对象的特征  8.3.4 游离对象的特征  8.4 Session接口的详细用法  8.4.1 Session的save()和persist()...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1

    一共有三个分卷。全部下载才能解压。 这本书不错,值得一看。

    Hibernate 数据持久化

    总结来说,Hibernate的数据持久化机制是通过ORM技术将Java对象与数据库表进行绑定,使得开发者可以通过简单的对象操作实现对数据库的复杂操作。理解并熟练运用Hibernate,不仅可以提高开发效率,还能使应用程序更加...

    hibernate:java持久化对象详解02

    本教程“hibernate:java持久化对象详解02”是系列教程的一部分,它将继续深入探讨Java中的持久化对象与Hibernate的使用方法。在开始之前,建议先学习“hibernate:java持久化对象详解01”,以确保对基础概念有清晰的...

Global site tag (gtag.js) - Google Analytics