实体类规则entity
- 提供一个无参数 public访问控制符的构造器
- 提供一个标识属性,映射数据表主键字段,提供id 和 hbm.xml中id对应
- 所有属性提供public访问控制符的 set get 方法(javaBean)
- 标识属性应尽量使用基本数据类型的包装类型
- 不要用final修饰实体 (将无法生成代理对象进行优化)
- 持久化对象的唯一标识 OID:对应映射文件的id属性
自然主键和代理主键
- 主键具备: 不为空/不能重复/不能改变
- 自然主键:某个属性符合主键的三个要求.该属性可作为主键列.
- 代理主键:不存符合以上3个条件的属性,那么就增加一个没有意义的列
实体状态 :瞬时状态、持久状态、脱管状态
- 瞬时状态:transient, session没有缓存, 数据库没有记录, oid没有值
- 持久状态:persistent, session有缓存, 数据库有记录, oid有值
- 脱管状态:detached, session没有缓存, 数据库有记录, oid有值
- 瞬时 : 创建一个对象,这个对象就是瞬时状态
- 瞬时 转 持久 : 瞬时状态执行经过save、update、saveOrUpdate之后变成持久状态
- 持久 转 脱管 :load,get返回的对象是持久状态的,当session.close () 关闭或者session.clear() 清除所有或者session.evict(obj) 清除指定的PO对象后,对象变成脱管状态