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

 更新时间:2016年11月21日 09:50:55   投稿:lqh  
这篇文章主要介绍了Java Hibernate对象(瞬时态,持久态,脱管态)详解的相关资料,这里对Java Hibernate对象进行了介绍及总结,需要的朋友可以参考下

Java Hibernate对象

           由于最近学习Java Hibernate,这里对Java Hibernate对象的几种状态进行了资料整理,  有兴趣的朋友可以看下。

瞬时(transient):数据库中没有数据与之对应,超过作用域会被JVM垃圾回收器回收,一般是new出来且与session没有关联的对象。

持久(persistent):数据库中有数据与之对应,当前与session有关联,并且相关联的session没有关闭,事务没有提交;

          持久对象状态发生改变,在事务提交时会影响到数据库(hibernate能检测到)。

 (当对象save后,会将数据持久化,这时obj.set()后再提交事务hibernate会检测到数据的修改。

而如果在save这个对象之前(即使是处在事务中),也即是还没有持久化这个对象之前,用obj.set()则hibernate不能检测到数据修改,不会影响数据库)

脱管/游离(detached):数据库中有数据与之对应,但当前没有session与之关联;脱管对象状态发生改变,hibernate不能检测到。

hibernate对象的三种状态,转换图:

Commit()会关闭session

面试图:如果判断一个对象处于怎样的状态?

主要的依据是: 1. 看该对象是否处于session, 2, 看在数据库中有没有对应的记录

总结:

瞬时态: 没有session管理,同时数据库没有对应记录

持久态: 有session管理,同时在数据库中有记录

脱管态/游离态: 没有session管理,但是在数据库中有记录.

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • 解决 IDEA Maven 项目中"Could not find artifact" 问题的常见情况和解决方案

    解决 IDEA Maven 项目中"Could not find artifact" 

    这篇文章主要介绍了解决IDEA Maven项目中Could not find artifact问题的常见情况和解决方案,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • Spring Boot应用配置常用相关视图解析器详解

    Spring Boot应用配置常用相关视图解析器详解

    这篇文章主要给大家介绍了关于Spring Boot应用配置常用相关视图解析器的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • SpringBoot链路追踪skyworking的接入方法

    SpringBoot链路追踪skyworking的接入方法

    在SpringBoot项目中引入SkyWalking进行链路追踪,需要下载探针jar包,配置logback.xml,设置启动变量,以实现服务调用监控和错误预警,本文给大家介绍SpringBoot链路追踪skyworking的接入方法,感兴趣的朋友一起看看吧
    2024-10-10
  • IntelliJ IDEA 2020.2 配置大全详细图文教程(更新中)

    IntelliJ IDEA 2020.2 配置大全详细图文教程(更新中)

    这篇文章主要介绍了IntelliJ IDEA 2020.2 配置大全(更新中),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • 举例讲解Java中数组和字符串类型的使用方法

    举例讲解Java中数组和字符串类型的使用方法

    这篇文章主要介绍了举例讲解Java中数组和字符串类型的使用方法,是Java入门学习中的基础知识,需要的朋友可以参考下
    2015-09-09
  • java web实现简单聊天室

    java web实现简单聊天室

    这篇文章主要为大家详细介绍了java-web实现简单聊天室,含拍一拍功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • Leetcode常见链表问题及代码示例

    Leetcode常见链表问题及代码示例

    这篇文章主要介绍了Leetcode常见链表问题及代码示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • SpringBoot整合RabbitMQ示例详解

    SpringBoot整合RabbitMQ示例详解

    这篇文章主要介绍了SpringBoot整合RabbitMQ示例详解,RabbitMQ是一个实现了AMQP高级消息队列协议的消息队列服务,用Erlang语言。是面向消息的中间件,需要的朋友可以参考下
    2023-07-07
  • MyBatis延迟加载策略深入探究

    MyBatis延迟加载策略深入探究

    本文主要为大家详细介绍下mybatis的延迟加载,从原理上介绍下怎么使用、有什么好处能规避什么问题。感兴趣的小伙伴可以跟随小编一起学习一下
    2022-07-07
  • Java自定义注解用法实例小结

    Java自定义注解用法实例小结

    这篇文章主要介绍了Java自定义注解用法,结合实例形式总结分析了java常见的自定义注解类型、功能、用法及操作注意事项,需要的朋友可以参考下
    2019-09-09

最新评论