zoukankan      html  css  js  c++  java
  • Hibernate中的持久化类

    一、持久化类概述 

      就是一个JavaBean,这个JavaBean与表建立了映射关系。这个类就称为是持久化类。

      简单理解为 持久化类=JavaBean+映射文件。

      持久化类:是指其实例需要被Hibernate持久化到数据库中的类。持久化类符合JavaBean的规范,包含一些属性,以及与之对应的getXXX()和setXXX()方法。

    二、持久化类的编写规范

    l    需要提供无参数的构造方法

    l    类的属性需要私有,对私有的属性提供public的get和set方法

    l    提供一个唯一标识OID)的属性与表的主键对应。

          Java里面使用地址区分是否是同一个对象。数据库中是通过主键区分是否是同一个记录。Hibernate通过唯一标识区分是否在内存中是同一个对象。

    l    类不要使用final修饰。

    l    类中的属性尽量使用包装类类型

       建议实现序列化接口

    三、持久化类的三种状态

    3.1  瞬时态(Transient Object)

    瞬时态:持久化对象没有持久化标识OID,对象没有被Session管理。

    3.2   持久态(Persistent Object)

    持久态:持久化对象有持久化标识OID,对象被Session管理。

    3.3   脱管态(Detached Object)

    脱管态:持久化对象有持久化标识OID,对象没有被Session管理。

    3.4   三种状态的转换

    【瞬时态】

    获得瞬时态:

            * Customer c = new Customer();

    瞬时态对象转持久态:

            * session.save(c);  session.saveOrUpdate(c);

    瞬时态对象转脱管态:

            * c.setCust_id(1l);

    【持久态】

    获得持久态:

            * session.get(),session.load()…;

    持久态对象转脱管态:

            * session.close(),session.clear(),session.evict(Object obj);

    持久态对象转瞬时态:

            * session.delete();

    【脱管态】

    获得脱管态:

            Customer c = new Customer(); c.setCust_id(1l);

    脱管态对象转持久态

            * session.update(); session.saveOrUpdate();

    脱管态对象转瞬时态

    * c.setCust_id(null);

  • 相关阅读:
    Java实现 LeetCode 715 Range 模块(选范围)
    HTML 图像
    HTML 样式- CSS
    HTML <head>
    HTML 链接
    HTML 文本格式化
    目标检测中的anchor-based 和anchor free
    目标检测coco数据集点滴介绍
    Camera HDR Algorithms
    噪声标签的负训练:ICCV2019论文解析
  • 原文地址:https://www.cnblogs.com/rodge-run/p/6415592.html
Copyright © 2011-2022 走看看