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缓存中