1、hibernate自己維護主鍵的值。首先獲取該表中最大主鍵值,然後加一插入。主鍵字段對應的屬性型別可以是int、short、long以及其封裝型別。在高併發或者集群的情況下不能使用。
2、identity:使用資料庫自身自增長來維護。
<結果sqlid name
="id"
column
="tid"
>
<
generator
class
="sequence"
>
generator
>
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
(?, ?, ?, ?)
<3、由hibernate根據所使用的資料庫支援能力從identity、sequence生成策略中選擇一種。id name
="id"
column
="tid"
>
<
generator
class
="native"
>
generator
>
id>
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...