hibernate学习笔记2

1.Hibernate会保证在一个Session对象的缓存中,每个持久化对象存在唯一的OID

2.Java是按内存地址来识别和区分同一类的不同对象,关系型数据库是按照主键来区分的,hibernate使用对象标识符(OID)来建立Session缓存中的对象和数据库表中记录一一对应,对象OID和数据库表的主键相对应。

3.Java语言中,判断两个对象引用变量是否相等,有两种比较方式:(1)比较两引用对象内存地址是否相同,“==”就是比较内存地址。(2)比较两引用变量的值是否相等,Java API中一些类覆盖了Object类的equalsObject o)方法,实现对象值比较,如String类和Date类,还有Java包装类。

4.Increment标识符生成器,每次插入记录hibernate会先读取当前数据表中最大主键值,然后在此基础上增1,这种主键生成方式只适用只有单个hibernate应用进程访问同一个数据库的场合,集群环境下不适合。这种生成方式不依赖于底层数据库系统,因此适用于所有数据库。

5.Identity标识符生成器,在insert语句中不包含id字段,所有由底层数据库负责生成主键值,使用这种方式要求数据库支持自动增长字段类型。

6.sequence标识符生成器,利用底层数据库提供的序列生成标识符。需要底层数据库支持,MySQL不支持。

7.Hilo标识符生成器,不依赖于底层数据库系统,算法生成的标识符只能在一个数据库中保证唯一。

8.Nitive标识符生成器,根据底层数据库对自动生成标识符的支持能力,来选择使用identitysequencehilo标识符生成器,如MySQLMS SQL Server则选择identity,如Oracle则选择sequence

9.自然主键assigned,尽量不要使用具有业务意义的自然主键。

转载于:https://my.oschina.net/u/274427/blog/68560

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值