歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Hibernate中的主鍵生成策略簡介

Hibernate中的主鍵生成策略簡介

日期:2017/3/1 10:27:08   编辑:Linux編程

對於映射文件中的主鍵,我們習慣於於讓該字段能夠自動增長,來保證其唯一性。

但是,不同的數據庫自動增長的方式並不是相同的。如在SQLSERVER中,用identity,MYSQL中,有increment,Oracle中通常采用sequence。這樣一來,在數據庫的主鍵列操作上,便會顯得比較麻煩。

在Hibernate中,提供了主鍵生成策略。下面是比較常用的幾種:

1.uuid

用一個128-bit的UUID算法生成字符串類型的標識符。

在一個網絡中唯一(生成算法使用了IP地址)。

UUID被編碼為一個32位16進制數字的字符串。

2.assigned

手動分配數據庫主鍵增長方式。

由於是手動分配的,所以在執行新增操作時,需查詢數據庫判斷生成的主鍵是否已經存在。

3.increment

主鍵按數值順序遞增。此方式的實現機制為在當前應用實例中維持一個變量,以保存著當前的最大值,之後每次需要生成主鍵的時候將此值加1作為主鍵。

4.identity

主要適用於sqlserver數據庫的自動增長列的表,從1開始。

5.native

根據不同的數據庫采用不同的主鍵生成策略。比如,當前數據庫為sqlserver,則會采用identity,如為oracle,則采用oracle中的sequence等。

區分數據庫的不同是以hibernate主配置文件中sessionFactory中配置的數據庫方言。

當然還有其他的主鍵生成策略,我就不在這裡一一贅述了。

Copyright © Linux教程網 All Rights Reserved