创建实体类时的注意事项:
1.持久化类提供无参数构造
2.成员变量私有,提供共有的get/set方法访问,需提供属性
3.持久化类中的属性,应尽量使用包装类型
4.持久化类需要提供oid,与数据库中的主键列对应
5.不要用final修饰class
主键类型:
1.自然主键:表的业务列中,某列符合不为空并且不能重复的特征,该列可以作为主键使用。 很少用到,例如身份证号码
2.代理主键:表的业务列中,没有符合自然主键的,可以创建一个没有业务意义的列作为主键。
主键生成策略:记录保存到数据库时,主键的生成规则
1.identity: 主键自增,由数据库来维护主键值,录入时不需要指定主键
2.increment: 主键自增,由hibernate来维护主键值,每次插入数据前先查询id的最大值,在此基础上+1作为新的主键值,开发时不使用
3.sequence: Oracle中的主键生成策略
4.hilo: 高低位算法,主键自增,由hibernate维护,开发时不使用
5.native: hilo+sequence+identity自动三选一
6.uuid: 产生随机字符串作为主键,主键类型必须为String类型
7.assigned 自然主键生成策略,hibernate不会管理主键值,开发人员自定义
对象的三种状态:
1.瞬时状态:没有id,没有与session相关联
2.持久化状态:持久化状态对象的任何变化都会自动同步到数据库中
3.游离托管状态:有id,没有与session相关联