浅谈Hibernate中的三种数据状态(临时、持久、游离)

1.临时态(瞬时态)

不存在于session中,也不存在于数据库中的数据,被称为临时态。

比如:刚刚使用new关键字创建出的对象。

2.持久态

存在于session中,事务还未提交,提交之后最终会进入数据库的数据,被称为持久态。

比如:刚刚使用session.save()操作的对象。

3.游离态(脱管态)

存在于数据库中,但不存在于session中的数据,被称为游离态。

比如:使用了session.save(),并且事务已经提交之后,对象进入数据库,就变成了游离态。

以上这篇浅谈Hibernate中的三种数据状态(临时、持久、游离)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • hibernate 三种状态的转换

    一.遇到的神奇的事情 使用jpa操作数据库,当我使用findAll()方法查处一个List的对象后,给对这个list的实体进行了一些操作,并没有调用update 或者 saveOrUpdate方法,更改后的数据却神奇的保存到数据库里面去了. 最后简单粗暴的解决办法是把这份从数据里面查出来的List  复制了一份,然后再操作,再返回.数据就正常了,数据库也没更新.后面找了资料才发现是jpa是对hibernate的封装,底层是hibernate,这是hibernate的持久状态搞的鬼. 二.hibe

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

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

  • 关于Hibernate的一些学习心得总结

    对于Hibernate刚刚学习了一周时间了,作为一名java初学者,也有点自己的感受想分享出来,如果这篇文章能有幸被大家看到,也仅供大家娱乐.如果有什么不足之处,欢迎大家多多指点,多多批评.仅供参考,不喜勿喷. 前段时间刚学习了用JDBC来进行java和数据库的连接,来实现对数据的持久化操作和增删改查,但是学习完的感受就是JDBC过于繁琐,因为它无法直接面对对象,开发效率地,代码又多,还重复,完全不符合java面向对象的思维模式.Hibernate的诞生算是给java程序员很好地解决了这个问题,

  • 浅谈Hibernate中的三种数据状态(临时、持久、游离)

    1.临时态(瞬时态) 不存在于session中,也不存在于数据库中的数据,被称为临时态. 比如:刚刚使用new关键字创建出的对象. 2.持久态 存在于session中,事务还未提交,提交之后最终会进入数据库的数据,被称为持久态. 比如:刚刚使用session.save()操作的对象. 3.游离态(脱管态) 存在于数据库中,但不存在于session中的数据,被称为游离态. 比如:使用了session.save(),并且事务已经提交之后,对象进入数据库,就变成了游离态. 以上这篇浅谈Hibernat

  • 浅谈js中的三种继承方式及其优缺点

    第一种,prototype的方式: //父类 function person(){ this.hair = 'black'; this.eye = 'black'; this.skin = 'yellow'; this.view = function(){ return this.hair + ',' + this.eye + ',' + this.skin; } } //子类 function man(){ this.feature = ['beard','strong']; } man.pr

  • 浅谈JS中的三种字符串连接方式及其性能比较

    工作中经常会碰到要把2个或多个字符串连接成一个字符串的问题,在JS中处理这类问题一般有三种方法,这里将它们一一列出顺便也对它们的性能做个具体的比较. 第一种方法 用连接符"+"把要连接的字符串连起来: str="a"; str+="b"; 毫无疑问,这种方法是最便捷快速的,如果只连接100个以下的字符串建议用这种方法最方便. 第二种方法 以数组作为中介用 join 连接字符串: var arr=new Array(); arr.push(a);

  • 浅谈javascript中的三种弹窗

    js中三种弹窗 1)alert 弹出警告 无返回值---------alert('第一行\n第二行'); 2)confirm()选择确定或取消,返回t或f----var result = confirm('是否删除!'); 3)prompt()弹出输入框,返回输入内容----var value = prompt('输入你的名字:', '请在这里输入名字'); 当然也可以自定义好看的样式.下面代码有问题明天再改. <script> //window.confirm //prompt window

  • 浅谈Laravel中的三种中间件的作用

    在之前一直简单的认为中间件就是往middleware里添加中间件即可.现在才知道中间件有三种类型,分别为:$middleware $middlewareGroup $routeMiddleware 通过查阅资料,终于明白了这三种类型的作用和不同. 第一种,全局中间件/$middleware: 我们的每一次请求,这里面的每个中间件都会执行. 第二种,路由中间件/$routeMiddleware: 定义在该属性内的中间件,只能在定义路由的时候引用. 假设这是我们定义的路由中间件: protected

  • 浅谈hibernate中对象的3种状态_瞬时态、持久态、脱管态

    Hibernate的对象有3种状态,分别为:瞬时态(Transient). 持久态(Persistent).脱管态(Detached).处于持久态的对象也称为PO(Persistence Object),瞬时对象和脱管对象也称为VO(Value Object). • 瞬时态 由new命令开辟内存空间的java对象, eg. Person person = new Person("amigo", "女"); 如果没有变量对该对象进行引用,它将被java虚拟机回收. 瞬

  • 浅谈Java中的集合存储数据后,输出数据的有序和无序问题

    HashSet , TreeSet , 无序是指存储数据的顺序和取出数据的顺序不一致:但是TreeSet 是按照指定的顺序排个序出来: 如果,我们想按照数据输入的顺序依次输出数据(即,如果依次输入4.1.7.3,输出时依次是4.1.7.3),此时需要用LinkedHashMap ,LinkedHashSet package Demo; import java.util.*; import java.util.Map.*; public class DemoMap { public static

  • 浅谈Java中的四种引用方式的区别

    强引用.软引用.弱引用.虚引用的概念 强引用(StrongReference) 强引用就是指在程序代码之中普遍存在的,比如下面这段代码中的object和str都是强引用: Object object = new Object(); String str = "hello"; 只要某个对象有强引用与之关联,JVM必定不会回收这个对象,即使在内存不足的情况下,JVM宁愿抛出OutOfMemory错误也不会回收这种对象. 比如下面这段代码: public class Main { publi

  • 浅谈hibernate中懒加载禁用操作

    浅谈hibernate中懒加载禁用操作 懒加载的概念:懒加载就是hibernate中的延迟加载,在hibernate中的一对多,多对多关系中通过对象导航来查询对象时一般默认的就是懒加载.就是当我们查询一个对象的时候,在默认情况下,返回的只是该对象的代理对象,当用户去使用该对象的属性是,才会向数据库中再一次发出查询语句.懒加载在某些情况下确实可以减少不必要的sql语句,但是有的情况下,还是会抛出异常. 下面我将介绍懒加载禁用的方式 方式一: 在需要禁用懒加载的实体对象的配置文件中配置lazy="f

  • 浅谈TreeSet中的两种排序方式

    直接上代码: package exercise1; public class Person implements Comparable{ private int id; private String name; public Person(int id, String name) { super(); this.id = id; this.name = name; } public int getId() { return id; } public void setId(int id) { th

随机推荐