[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

三种状态转换:

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值