hibernate 主鍵生成策略

2021-08-29 14:07:47 字數 858 閱讀 7221

程式設計師自己控制:不受資料庫的影響(sid自增長也沒用,得程式設計師自己定義)

資料型別不限、儲存前必須賦值

資料庫控制: (sql資料庫)identity(標識列/自動增長)

資料庫控制:受資料庫影響 sid自增長 , sid的資料型別必須為數字 ,無需賦值

資料庫控制:sequence(oracle資料庫)

資料庫控制:受資料庫影響 sid自增長 , sid的資料型別必須為數字 ,無需賦值

預設使hibernate_sequence這個序列,

也可以通過sequence/sequence_name引數賦值

increment :

由hibernate自動遞增的方式生成識別符號,每次增量為1,優點是適用於所有資料庫,缺點是在集群環境下可能會出現相同的主鍵值且oid必須為數值型別

uuid/uuid.hex

(是由容器自動生成的乙個32位的字串,.hex代表的是十六進製制)

32位的字串,無需賦值

oid是string型別而不能是數值型別

等於identity+sequence

由hibernate根據底層資料庫自行判斷採用identity,sequence其中一種作為主鍵生成方式。

實現org.hibernate.id.identifiergenerator介面即可,並還可以實現org.hibernate.id.configurable介面來讀取一些配置資訊

public class myidcreate implements identifiergenerator

}

Hibernate主鍵生成策略

hibernate主鍵生成策略 1 自動增長identity 適用於mysql db2 ms sql server,採用資料庫生成的主鍵,用於為long short int型別生成唯一標識 使用sql server 和 mysql 的自增欄位,這個方法不能放到 oracle 中,oracle 不支援...

Hibernate主鍵生成策略

1 自動增長identity 適用於mysql db2 ms sql server,採用資料庫生成的主鍵,用於為long short int型別生成唯一標識 使用sql server 和 mysql 的自增欄位,這個方法不能放到 oracle 中,oracle 不支援自增字段,要設定sequence...

hibernate主鍵生成策略

文章摘抄至 1 自動增長identity 適用於mysql db2 ms sql server,採用資料庫生成的主鍵,用於為long short int型別生成唯一標識 使用sql server 和 mysql 的自增欄位,這個方法不能放到 oracle 中,oracle 不支援自增字段,要設定se...