Hibernate中实体的创建规则及对象的三种状态

一: Hibernate实体类的创建规则:

       1. 持久化类提供无参构造方法

       2. 属性私有化,提供公开的get/set方法

       3. 持久化类中的属性,应尽量使用包装类

       4. 持久化类需要提供OID与数据库中的主键列对应

       5. 不能用final修饰class

注意:

        为了通过反射机制(Reflection)来实例化这个类的对象,我们需要提供一个无参的构造器(no-argument constructor)。

而实现serializable接口的原因是因为要达成将类创建的对象转化为字节流实现跨平台的目的。

二. 对象的状态:

  1. 瞬时态(transient)

瞬时态称为临时态或自由态,瞬时态的实例是由new命令创建、开辟内存空间的对象,不存在持久化标识OID(相当于主键值),尚未与Hibernate Session关联,在数据库中也没有记录,失去引用后将被jvm回收。瞬时态的对象在内存中是孤立存在的,与数据库中的数据无任何联系,仅是一个信息携带的载体。

    2. 持久态(persistent)

持久态的对象存在持久化标识OID,加入到了Session缓存中,并且相关联的Session没有关闭,在数据库中有对应的记录,每条记录只对应唯一的持久化对象,需要注意的是,持久态对象是在事务还未提交前变成持久态的。

   3.托管态(detached)

托管态也称离线态或游离态,托管态对象存在持久化标识OID,并且仍然与数据库中的数据存在关联,只是失去了与当前session的关联,托管态对象发生改变时Hibernate不能检测到。

发布了91 篇原创文章 · 获赞 1 · 访问量 3230

猜你喜欢

转载自blog.csdn.net/duan196_118/article/details/104122434
今日推荐