Hibernate框架-实体规则与对象状态

实体规则

一、实体类创建的注意事项
    1.持久化类提供无参数构造
    2.成员变量私有,提供共有get/set方法访问.需提供属性
    3.持久化类中的属性,应尽量使用包装类型
    4.持久化类需要提供oid,与数据库中的主键列对应

    5.不要用final修饰class:hibernate使用cglib代理生成代理对象,代理对象是继承被代理对象,如果被final修饰.将无法生成代理


二、主键类型
1、自然主键(少见)
表的业务列中,有某业务列符合,必须有,并且不重复的特征时,该列可以作为主键使用.

2、代理主键(常见)
表的业务列中,没有某业务列符合,必须有,并且不重复的特征时,创建一个没有业务意义的列作为主键


三、主键生成策略

1、代理主键
identity : 主键自增,由数据库来维护主键值,录入时不需要指定主键

2、自然主键
assigned : 自然主键生成策略.,hibernate不会管理主键值.由开发人员自己录入


对象状态

 一、对象分为三种状态

1、瞬时状态:没有id,没有在session缓存中

2、持久化状态:有id,在session缓存中

3、游离|托管状态:有id,没有在session缓存中


二、三种状态的转换图

Hibernate框架-实体规则与对象状态