持久化类应遵循的规则:
  • 有无参构造器,构造器的修饰符>=默认访问控制符
  • 有标识属性,映射数据库表的主键,建议使用基本类型的包装类
  • 每个成员有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. 理解screenX clientX pageX概念

    先了解screenX,clientX,pageX概念 screenX: 鼠标位置相对于用户屏幕水平偏移量,而screenY就是垂直方向的,此时的参照点也就是原点是屏幕的左上角. clientX: 跟s ...

  2. java使用xheditor Ajax异步上传错误

    java使用xheditor Ajax异步上传时候错误如下:the request doesn't contain a multipart/form-data or multipart/mixed s ...

  3. javascript-智能社-JS基础B笔记

    运算符 算术:+ 加.- 减.* 乘./ 除.% 取模(也叫取余) 余数就是不能整除的多出来的那部分 比如说 23除以5 等于4.6   保留整数4舍弃小数.6  然后用保留的整数4乘以5等20  最 ...

  4. c++虚表的使用 通过虚表调用虚函数的演示代码

    //演示一下c++如何找到虚表地址vptr以及如何通过虚表调用虚函数 //zhangpeng@myhexin.com 20130811 #include <iostream> using ...

  5. 导入导出封装的工具类 (一) 利用POI封装

    对于导入导出各个项目中差点儿都会用到,记得在高校平台中封装过导入导出这部分今天看了看是利用JXL封装的而经理说让我用POI写写导出,这两个导入导出框架是眼下比較流程和经常使用的框架,有必要都了解一下. ...

  6. 为一张PCI卡打通经络的过程

    一张PCI卡通过“一转二”的转接卡插在主板上,probe调用失败,日志显示读取配置空间的时候发生了奇偶校验错误,可是使用相同的转接卡把它插在另外一台相同机器的主板上时,却运行正常,这就说明不是转接卡的 ...

  7. (step6.3.4)hdu 1151(Air Raid——最小路径覆盖)

    题意:     一个镇里所有的路都是单向路且不会组成回路. 派一些伞兵去那个镇里,要到达所有的路口,有一些或者没有伞兵可以不去那些路口,只要其他人能完成这个任务.每个在一个路口着陆了的伞兵可以沿着街去 ...

  8. [Javascript] Adding Shapes to Maps with Leaflet and GeoJSON

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  9. BLE 广播数据解析

    从上一篇GATT Profile 简介中提到过,BLE 设备工作的第一步就是向外广播数据.广播数据中带有设备相关的信息.本文主要说一下 BLE 的广播中的数据的规范以及广播包的解析. 广播模式 BLE ...

  10. 在hadoop上进行编写mapreduce程序,统计关键词在text出现次数

    mapreduce的处理过程分为2个阶段,map阶段,和reduce阶段.在要求统计指定文件里的全部单词的出现次数时. map阶段把每一个关键词写到一行上以逗号进行分隔.并初始化数量为1(同样的单词h ...