Hibernate读书笔记2-主键生成策略

来源:互联网 发布:手机淘宝女装店铺公告 编辑:程序博客网 时间:2024/06/11 06:55

Hibernate 主键生成方式有如下几种:1)sequence(针对oracle) 2)identity (mysql自增类型 3)native根据数据库适配器中的定义,自动选择 4)hilo  5)foreign 6)其他

1)identity

       step1 :select max(column) from table;

       step 2:insert into table values(...);     

     缺陷:identity仅仅在只有单个hibernate应用时结果才正确,即使在同一个进程中创建了连接同一数据库的多个SessionFactory实例,也会导致失败。Hibernate identity不能运行在机群环境下。

 

2) hilo

       step 1: Hibernate在数据库中产生一个hi_value表,用于存储键值

       step 2: 从表中查找next_value,生成主键,它不是用Session对象的当前数据库连接和事务,而是在一个新的数据库连接中创建新的

3) foreign

         

   Hibernate企图囊括所有主键生成方式,做到尽善尽美,但是在我看来这里做的还不是很好。显然,如果要想将hibernate运用在云计算下,hibernate的思想可以被采纳的有哪些呢?尽管在我看来,这两者目前为止,还完全不搭轧