NHibernate 的 ID 標識選擇器

2022-03-20 10:31:30 字數 1273 閱讀 6087

在 hibernate 中,每個物件需要乙個標識 id,通過這個標識 id 建立物件與資料庫中記錄的對應關係。

nhibernate 提供了多種方式來建立這個 poid。基於不同的生成策略,可以選擇更佳的方式。

首先是賦值方式:assigned,這種方式需要應用程式賦予物件乙個標識 id, 這種情況典型地用在自然主鍵的時候。

第二種方式是非插入方式的生成器,對於新的應用程式來說,這是最佳的方式,nhibernate 賦予持久化物件乙個標識,而不需要寫入資料庫後才能生成。這允許 nhibernate 在事務完成的時候,才需要寫入資料庫,減少了訪問資料庫的往返次數,下面的方式都屬於這種策略。

第三種策略是插入之後的 poid 生成器,需要資料持久化到資料庫之後,由資料庫生成,一般用在現有的資料庫中。

最後,native返回資料庫生成的 id,對於 microsoft sql server,db2, informix, mysql, postgresql, sqlite 和 sybase 等效於 identity,對於 oracle 和 firebird,等效於 sequence,對於 ingres,則是 hilo.

nhibernate對映檔案配置序列

sequence_name

在 hibernate 中,每個物件需要乙個標識 id,通過這個標識 id 建立物件與資料庫中記錄的對應關係。

nhibernate 提供了多種方式來建立這個 poid。基於不同的生成策略,可以選擇更佳的方式。

首先是賦值方式:assigned,這種方式需要應用程式賦予物件乙個標識 id, 這種情況典型地用在自然主鍵的時候。

第二種方式是非插入方式的生成器,對於新的應用程式來說,這是最佳的方式,nhibernate 賦予持久化物件乙個標識,而不需要寫入資料庫後才能生成。這允許 nhibernate 在事務完成的時候,才需要寫入資料庫,減少了訪問資料庫的往返次數,下面的方式都屬於這種策略。

第三種策略是插入之後的 poid 生成器,需要資料持久化到資料庫之後,由資料庫生成,一般用在現有的資料庫中。

最後,native返回資料庫生成的 id,對於 microsoft sql server,db2, informix, mysql, postgresql, sqlite 和 sybase 等效於 identity,對於 oracle 和 firebird,等效於 sequence,對於 ingres,則是 hilo.

nhibernate對映檔案配置序列

sequence_name

生成唯一標識id

python 中獲取執行緒id def sys order id 在高併發分布式情況下生成唯一標識id import random import threading import ctypes import time import os 只有一台伺服器生成單號 所以ip固定 後續考慮可以使用執行緒號...

新建標識列,id自增

乙個表中可以不設定主鍵,如果設定主鍵,則主鍵唯一且主鍵列不得有空值。標識列,是sql server中的標識列又稱識別符號列,習慣上又叫自增列。1 建立表時指定標識列 標識列可用 identity 屬性建立,因此在sql server中,又稱標識列為具有identity屬性的列或identity列。下...

iOS中系統唯一標識ID

在2013年3月21日蘋果已經通知開發者,從2013年5月1日起,替代的方案是開發者應該使用 在ios 6中介紹的vendor或advertising標示符 cfuuid 方法用來建立cfuuidref,並且可以獲得乙個相應的nsstring,如下 cfuuidref cfuuid cfuuidcr...