hibernate5 主鍵生成策略

2022-08-29 06:30:12 字數 1567 閱讀 4873

1、hibernate自己維護主鍵的值。首先獲取該表中最大主鍵值,然後加一插入。主鍵字段對應的屬性型別可以是int、short、long以及其封裝型別。在高併發或者集群的情況下不能使用。

2、identity:使用資料庫自身自增長來維護。

<

id name

="id"

column

="tid"

>

<

generator

class

="sequence"

>

generator

>

結果sql

hibernate: 

create table hibernate_sequence (

next_val bigint

)hibernate:

insert into hibernate_sequence values ( 1)

hibernate:

create table t_student (

tid integer not

null

, tname varchar(255),

tage integer,

tscore

double

precision,

primary key (tid)

)hibernate:

select

next_val as id_val

from

hibernate_sequence

forupdate

hibernate:

update

hibernate_sequence

setnext_val= ?where

next_val=?hibernate:

insert

into

t_student

(tname, tage, tscore, tid)

values

(?, ?, ?, ?)

<

id name

="id"

column

="tid"

>

<

generator

class

="native"

>

generator

>

id>

3、由hibernate根據所使用的資料庫支援能力從identity、sequence生成策略中選擇一種。

4、assigned生成策略:程式設計師通過setid()手動設定。

示例:

hibernate主鍵生成

hibernate的主鍵生成器 generator元素 表示了乙個主鍵生成器,它用來為持久化類例項生成唯一的標識 1.1 程式設計師自己控制 assigned 1.2 資料庫控制 identity 標識列 自動增長 sequence 1.3 hibernate控制 increment uuid uu...

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...