[Hibernate] Hibernate的主键类型及三种对象状态

一、hibernate中的实体规则

1.实体类创建的注意事项

1.持久化类提供无参构造函数

2.成员变量私有化,提供set/get方法

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

4.持久化类需要提供oid,与数据库的主键对应

5.不要使用final修饰class ,因为hibernate 使用cglib代理生成代理对象。代理对象需要继承被代理对象名,如果使用final修饰则无法继承

2.主键类型

主键生成策略(7个)

identity : 主键自增.由数据库来维护主键值.录入时不需要指定主键。

increment(了解): 主键自增.由hibernate来维护.每次插入前会先查询表中id最大值.+1作为新主键值。

sequence:Oracle中的主键生成策略

hilo:高低位算法主键自增,由hibernate 维护。开发时不使用

native:hilo+sequence+identity 自动三选一

uuid:随机产生字符串作为主键,主键类型必须是String类型

assigned:自然主键生成策略,有开发人员自己录入

二、hibernate中的对象状态

对象分为3种状态:

瞬时状态:没有id,没有与之关联的session

持久化状态:有id,有与之关联的session

游离|托管状态:有id,没有与之关联的session

三种状态转换:

希望同步到数据库中的数据,对应的对象转换为持久化对象。

猜你喜欢

转载自blog.csdn.net/xueerliang123/article/details/82535108