1. 程式人生 > >hibernate JPA註解主鍵生成策略

hibernate JPA註解主鍵生成策略

Id生成策略:

@GeneratedValue,JPA通用策略生成器 

        JPA提供的四種標準用法為TABLE,SEQUENCE,IDENTITY,AUTO. 
          TABLE:使用一個特定的資料庫表格來儲存主鍵。 
          SEQUENCE:根據底層資料庫的序列來生成主鍵,條件是資料庫支援序列。 

1.sequence 根據底層資料庫的序列來生成主鍵,條件是資料庫支援序列

@id
@sequenceGenerator(name="seq",sequenceName="seq_house")
@GeneratedValue(generator="seq",strategy=GenerationType.AUTO)
2.identity:主鍵有資料庫自動生成(SQL server Mysql,DB2)
@Id
@GenerateValue(strategy=GeneratorType.IDENTITY)
3.AUTO:主鍵由程式控制(編寫程式生成)

@id
@GeneratedValue(Strategy=GengeratorType.AUTO)
4.native 對於oracle 採用sequence方式,對於Mysql,和sql server採用identity(自增主鍵生成器),
         native就是將主鍵的生成工作交由資料庫完成,hibernate不管(很常用)。
  @GenericGenerator hibernate主鍵策略生成器 
  @GenericGenerator註解配合@GeneratedValue一起使用,@GeneratedValue註解中的"generator"
屬性要與@GenericGenerator註解中name屬性一致,strategy屬性表示hibernate的主鍵生成策略 
@id
@GenericGenerator(name="seq",strategy="native")
@GeneratedValue(generator="seq",)
5.increment
@Id
@GeneratedValue(generator="increment")
@GenericGenerator(name="increment", strategy = "increment")
6.assigned: 在插入資料的時候主鍵由程式處理(很常用),這是 <generator>元素沒有指定時的預設生成策略。等同於JPA中的AUTO。 
@GeneratedValue(generator = "seq")    
@GenericGenerator(name = "seq", strategy = "assigned ") 
7.sequence: 呼叫底層資料庫的序列來生成主鍵,要設定序列名,不然hibernate無法找到。 
@GeneratedValue(generator = "xxx")  
@GenericGenerator(name = "xxx", strategy = "sequence", parameters = { @Parameter(name = "sequence", value = "底層資料庫sequenceName") }

8.不常用的

uuid: 採用128位的uuid演算法生成主鍵,uuid被編碼為一個32位16進位制數字的字串。佔用空間大(字串型別)。 

@GeneratedValue(generator = "xxx")    
@GenericGenerator(name = "xxx", strategy = "uuid")   
hilo: 使用hilo生成策略,要在資料庫中建立一張額外的表,預設表名為hibernate_unique_key,預設欄位為integer型別,名稱是next_hi(比較少用)。 
@GeneratedValue(generator = "xxx")    
@GenericGenerator(name = "xxx", strategy = "hilo")   
guid: 採用資料庫底層的guid演算法機制,對應MYSQL的uuid()函式,SQL Server的newid()函式,ORACLE的rawtohex(sys_guid())函式等。 
@GeneratedValue(generator = "xxx")    
@GenericGenerator(name = "xxx", strategy = "guid")   
uuid.hex: 看uuid,建議用uuid替換。 
@GeneratedValue(generator = "xxx")    
@GenericGenerator(name = "xxx", strategy = "uuid.hex")   








相關推薦

hibernate JPA註解生成策略

Id生成策略: @GeneratedValue,JPA通用策略生成器 。         JPA提供的四種標準用法為TABLE,SEQUENCE,IDENTITY,AUTO.           TABLE:使用一個特定的資料庫表格來儲存主鍵。           S

JPA註解生成策略-UUID

ces sys 策略 選擇 system 實現 table ont ora @GeneratedValue:主鍵的產生策略,通過strategy屬性指定。   主鍵產生策略通過GenerationType來指定。GenerationType是一個枚舉,它定義了主鍵產生策略的

使用註解風格學習HibernateJPA生成策略

                      主鍵是關係資料庫中的一個基本概念,它用來保證記錄的唯一性。簡單來說,就是同一張資料庫表中,不允許存在多條相同主鍵的記錄。主鍵生成策略,就是當向資料庫表中插入記錄的時候,這個記錄的主鍵該如何生成。絕大部分情況下,主鍵都是沒有業務含義的,所以開發者不會、也不需要,顯示地

Hibernate註解---生成策略

hibernate註解(annoation)使用id主鍵生成主要要使用到以下幾個註解: @Id,@GeneratedValue,@GenericGenerator. ,@GeneratedValue的作用是JPA的預設實現自定義主鍵生成策略,@GenericGener

Hibernate框架的生成策略

如果 維護 自己 db2 取值 identity 返回 nat 數字   在Hibernate中,id元素的<generator>子元素用於生成持久化類的對象的唯一標識符,也就是主鍵。Hibernate框架中定義了許多主鍵生成策略類,也叫生成器類。所有的生成器類

Hibernate自定義生成策略

在沒使用hibernate註解式之前,我們是需要建立hbm.xml的這樣一個用於對映的配置檔案,而我們的主鍵生成的方式則需要在這個xml的檔案內區定義。   黃色框框內就是我們主鍵生成的多種方式 1. <generator class="cok.zking

hibernate入門2生成策略

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

Hibernate Annotation配置生成策略

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!                通過annotation來對映hibernate實體的,基於annotation的hibernate主鍵標識為@Id其生成規則由@GeneratedValue設

hibernate學習之生成策略

一、Hibernate最常用的主鍵生成策略為native和uuid。 native可以根據資料庫不同自動選擇sequence、identity和hilo其中的一種。 <id name="uId" column="uId">  <!-- 設定資料庫表id增長策略(自動

Hibernate:識別符號屬性()生成策略全析

資料庫中的主鍵能夠唯一識別一條記錄,它可以是一個欄位也可以是多個欄位的組合。主鍵的主要作用是標識表中的一條記錄,還有和其他表中的資料進行關聯。資料庫中的主鍵型別必須符合唯一性約束和非空約束。作為附加屬性,主鍵應該儘可能簡潔,不要包含過多屬性。根據這個原則,主鍵可以分為自然

jpa table生成策略

用 table 來生成主鍵詳解 它是在不影響效能情況下,通用性最強的 JPA 主鍵生成器。這種方法生成主鍵的策略可以適用於任何資料庫,不必擔心不同資料庫不相容造成的問題。 initialValue不起作用? Hibernate 從 3.2.3 之後引入了兩個新的主鍵生成器 TableGenerator

hibernate中的生成策略

一、在hibernate的實體對映配置檔案中配置hibernate的主鍵生成器: generator元素:表示了一個主鍵生成器,它用來為持久化類例項生成唯一的標識 。 <?xml version="1.0" encoding="UTF-8"?> &l

Hibernate常用的生成策略

1、自動增長identity 適用於MySQL、DB2、SQL Server,採用資料庫生成的主鍵,用於為long、short、int型別生成唯一標識 使用SQL Server 和 MySQL 的自增

JPA 菜鳥教程 19 jpa uuid生成策略

GitHub ddl語句 CREATE TABLE `t_user` ( `id` varchar(32) NOT NULL, `name` varchar(255) DEFAU

【吐血整理】Hibernate常用的生成策略的原理、優缺點、應用場合

// 此文由老貓燒須整理,其中加上本人的使用教程,如有誤,歡迎指出 // 僅作學習以及備份使用,轉載如帶有本人整理資料請註明出處 // 歡迎大家留言交流 簡介版: increment:代理主鍵,適合於所有資料庫,由hibernate維護主鍵自增,和底層資料庫無關,但

Hibernate入門之生成策略詳解

前言 上一節我們講解了Hibernate命名策略,從本節我們開始陸續講解屬性、關係等對映,本節我們來講講主鍵的生成策略。 主鍵生成策略 JPA規範支援4種不同的主鍵生成策略(AUTO、IDENTITY、SEQUENCE、TABLE),這些策略以程式設計方式生成主鍵值或使用資料庫功能(例如自動遞增或序列),我們

hibernate註解(annoation)使用id生成策略

hibernate註解(annoation)使用id主鍵生成主要要使用到以下幾個註解: @Id,@GeneratedValue,@GenericGenerator. ,@GeneratedValue的作用是JPA的預設實現自定義主鍵生成策略,@GenericGener

Hibernate 生成策略

關閉 min conn mine 數據 xml文件 ive orm 刪除 第一步:引入jar包 省略 第二部:創建實體類 package cn.hibernate.bean; public class Student { private Integer sId;

(轉) Hibernate持久化類與生成策略

bject 規則 修飾符 cti arc arch 斷點 可能 策略 http://blog.csdn.net/yerenyuan_pku/article/details/65462930 Hibernate持久化類 什麽是持久化類呢?在Hibernate中持久化類的英

Hibernate生成策略小總結

rem 時間值 多線程 class 判斷 acl 選擇 hiberna bsp 主鍵生成策略大致分兩種: 手工控制策略 自動生成策略【框架自動生成和數據庫自動生成】 手工控制策略: assigned:類型是任意的,需要在 save() 到數據庫前,編碼人員手工設置主鍵