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);

原文地址:https://www.cnblogs.com/rodge-run/p/6415592.html