持久化类应遵循的规则:
  • 有无参构造器,构造器的修饰符>=默认访问控制符
  • 有标识属性,映射数据库表的主键,建议使用基本类型的包装类
  • 每个成员有setter和getter
  • 非final修饰的类
  • 重写equals()和hashCode()方法(当需要把持久化类的属性放进Set中时)
 
持久化类的状态:
 
  
 
改变持久化对象状态的方法:
 
持久化实体:
    Serializable save(Object obj)   保存到数据库
    void persist(Object obj)
    Serializable save(Object obj,Object pk) 保存到数据库,指定主键值
    void persist(Object obj,Object pk)
save()和persist()方法的区别:使用sava()方法时,会立即将持久化对象插入数据库,返回该持久化对象的标识属性值。
                                              使用persist()方法时,不会立即插入数据库,没有返回值。
 
根据主键加载持久化实体:
    News n = sess.load(News.class , pk);
     根据主键加载一条记录,如果数据库中没有对应记录时可能会抛出 HibernateException异常,如果指定了延迟加载,则load方法会返回一个未初始化的代理对象,这个代理对象会直到程序调用它的某方法时才访问数据库。
    与get()方法的区别:get()方法会立刻访问数据库(没有延迟加载),没有对应记录时返回null,而不是代理对象。、
 
更新持久化实体:
     n.setTitle("新标题");
      修改对象最简单的方法就是在Session处于打开状态时load它,然后直接修改即可,不需要调用update()方法。
 
更新托管实体:
    update()
    updateOrSave()判断对象是否持久化过,如果有,执行update()操作,否则,执行save()操作。
    merge()不持久化给定的对象,而是返回对象的副本,该副本处于持久化状态。如果Session中存在相同持久化标识的持久化对象,merge()方法里提供的对象状态覆盖原来的实例状态。如果没有,尝试从数据库中加载,或者创建新的持久化实例,最后返回该吃菊花实例对象。
                 
删除持久化实体:
    News n = sess.load(News.class , pk);
    sess.delete(n);
 

Hibernate持久化对象的更多相关文章

  1. 1.1Hibernate持久化类和Hibernate持久化对象状态

    一.持久化对象po类 1.po定义 PO,是Persistent Object的缩写,是持久化类.PO是由PO=POJO+hbm映射配置组成. 2.通俗理解 PO类即持久化类,其实就是一个普通的Jav ...

  2. Hibernate持久化对象修改id重新保存的办法

    Hibernate持久化对象修改id重新保存的办法——Hibernate学习记录二 2017年11月10日 20:16:48 筱光 阅读数:1122   版权声明:本文为博主原创文章,未经博主允许不得 ...

  3. hibernate 持久化对象 save

    hibernate 持久化对象 save new出来的user对象是游离状态的对象,执行session.save()方法保存后,user对象就变为持久化了,持久化的对象跟数据库表双向绑定的意思, 对象 ...

  4. hibernate 持久化对象的生命周期 2.1

    持久化对象的生命周期 瞬态(自由态) 表示对象在内存中存在,在数据库中没有数据相关,比如刚刚new出来的一个对象 持久态 持久态指的是持久化对象处于由Hibernate管理的状态,这种状态下持久化对象 ...

  5. Hibernate持久化对象状态

    在Hibernate中,持久化对象再被操作过程中分为三个时期.这三个时期和session周期相关. 各自是瞬时(Transient),持久太(persistent)和游离态(Detached) 瞬时状 ...

  6. Hibernate持久化对象的三种状态深入理解

    关于OID hibernate缓存是一个map,他会根据OID作为缓存对象的key,我们的映射文件中<id>标签指定的属性值会作为OID 持久化对象的三种状态 为了方便理解,Hiberna ...

  7. hibernate 持久化对象的三个状态

    Hibernate中的对象有3种状态 瞬时对象(TransientObjects).持久化对象(PersistentObjects)和离线对象(DetachedObjects也叫做脱管对象) Tran ...

  8. 【SSH系列】-- Hibernate持久化对象的三种状态

    在上一篇博文中,小编主要简单的介绍了[SSH系列]--hibernate基本原理&&入门demo,今天小编来继续介绍hibernate的相关知识, 大家知道,Java对象的生命周期,是 ...

  9. Hibernate持久化对象的状态

    1. 站在持久化的角度 , Hibernate 把对象分为 4 种状态 : 持久化状态, 暂时状态, 游离状态(脱管状态) , 删除状态.Session 的特定方法能使对象从一个状态转换到还有一个状态 ...

  10. hibernate 持久化对象的生命周期

    持久化对象的生命周期 瞬态(自由态) 表示对象在内存中存在,在数据库中没有数据相关,比如刚刚new出来的一个对象 持久态 持久态指的是持久化对象处于由Hibernate管理的状态,这种状态下持久化对象 ...

随机推荐

  1. 【面试虐菜】—— Oracle中CHAR、VARCHAR的区别

    1.CHAR. CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不足的自动用空格填充,所以在读取 ...

  2. visual studio 2015提示IE10未安装

    将以下代码写入文本: @ECHO OFF :IE10HACK REG ADD "HKLM\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer&q ...

  3. editplus如何设置不自动备份

    依次选择:工具,参数设置,文件(默认展开的,要缩回),然后看右边“保存文件时创建备份”,前面的框不要打勾,应用,确定

  4. 阿里云ONS而微软Azure Service Bus体系结构和功能比较

    阿里云ONS而微软Azure Service bus体系结构和功能比较 版权所有所有,转载请注明出处http://blog.csdn.net/yangzhenping.谢谢! 阿里云的开放消息服务: ...

  5. Google高级技巧—google Hack★★★★

    google hacking事实上并算不上什么新东西,当时并没有重视这样的技术,觉得webshell什么的,并无太大实际用途.google hacking事实上并非如此简单... 经常使用的googl ...

  6. Linux crontab 命令格式与具体样例

    基本格式 : * * * * * command 分 时 日 月 周 命令 第1列表示分钟1-59 每分钟用*或者 */1表示 第2列表示小时1-23(0表示0点) 第3列表示日期1-31 第4列表示 ...

  7. android开发入门经验 ADT Bundle环境搭建

    现在有许多做开发的转做移动端开发,做J2EE的转做Android开发,我也把自己的一些入门经验与大家分享一下,希望能给你带来帮助. 工具/原料 JDK,ADT,JAVA 方法/步骤   开发工具的准备 ...

  8. 8.LNMP环境的配置

    LNMP环境的配置 参照文档:https://oneinstack.com/install/ 安装文件位置:/data/soft: ```yum -y install wget screen pyth ...

  9. .net+easyui--combobox

    一:预定义结构的 select 元素创建组合框(combobox)值固定写死 <select class="easyui-combobox" name="state ...

  10. JQuery对象与DOM对象分析

    一.定义: DOM对象(文档对象模型):暂时这么理解:通过JavaScript获取的HTML元素,称为DOM对象.如:var domID=document.getElementById("i ...