1. 程式人生 > >Hibernate annotation 怎麼設定主鍵自動增長?

Hibernate annotation 怎麼設定主鍵自動增長?

需要在主鍵上增加一個@Id標識
 @Id   
 @GeneratedValue(strategy = GenerationType.IDENTITY)   
 public int getId() {   
      return id;   
 }   
GenerationType 型別的列舉值,它的內容將指定OpenJPA容器自動生成實體標識的方式,共有:

GeneratorType.AUTO

GenerationType.IDENTITY

GenerationType.SEQUENCE

GenerationType.TABLE

四種方式 。
@GeneratedValue(strategy = GenerationType.IDENTITY)  
一般可以根據你採取的底層資料庫來選擇,比如是用oracle,id用sequence的話,可以採取sequence方式,如果是用mysql,一般就用auto模式  
// 預設相當於native ID生成策略,JPA 1.0 中只有4個可選值  
// 如果只寫@Id ,主鍵欄位不會自動產生,需要我們手動輸入  
// @GeneratedValue 預設為策略產生ID  
// 如果我要讓ID為IDENTITY 則需要手動給他指定值

[email protected](strategy=GenerationType.IDENTITY)  
這樣選擇了主鍵生成策略,在給實體賦值時就不用設定ID值了。 

相關推薦

Hibernate annotation 怎麼設定自動增長

需要在主鍵上增加一個@Id標識  @Id     @GeneratedValue(strategy = GenerationType.IDENTITY)     public int getId() {          return id;     }   Genera

SQLite設定自動增長及插入語法

 SQLite中,一個自增長欄位定義為INTEGER PRIMARY KEY AUTOINCREMENT,那麼在插入一個新資料時,只需要將這個欄位的值指定為NULL,即可由引擎自動設定其值,引擎會設定為最大的rowid+1。如果表為空,那麼將會插入1。  比如,有一張表ID

Mysql,SqlServer,Oracle自動增長設定

1、把主鍵定義為自動增長識別符號型別 MySql 在mysql中,如果把表的主鍵設為auto_increment型別,資料庫就會自動為主鍵賦值。例如: create table customers(id int auto_increment primary key not

Oracle實現自動增長

我們都知道,在MySQL中,要實現主鍵的自動遞增非常簡單.只需要在主鍵定義的後面加上auto_increment即可, 但是在Oracle中就不是這樣,需要分幾步來完成 1.建立一個表,這個就不多說了,如果這個都不會,,相信我,回頭是岸啊~ create table 戶口本 

Hibernate Annotation配置生成策略

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

Oracle 設定增長__Oracle

轉自:https://yq.aliyun.com/ziliao/258074 如果想在Oracle資料庫裡實現資料表主鍵自增,我們似乎沒有辦法像MySql般直接定義列的屬性來實現。不過對於這個資料庫的常用功能,我們還是有辦法實現的。這裡將展示使用觸發器來實現主鍵自增。 1.準備 建立UserIn

資料庫:ORACLE設定自動遞增

建立表STUDENT   假設主鍵為ID一、先設定遞增:    設定遞增需要建立序列,在plsql找到sequence,右鍵點選新建                名稱隨便起一個  這裡為s_student. 其他的數字如圖二、建立觸發器        sql:       

sybase 自動增長

CREATE TABLE peng_user(   userId int   identity,   userName varchar(10) NULL,   password  varchar(10) NULL,   comment  varchar(10) NULL,

mybatis插入資料自動增長處理

 1.如果資料庫支援自動增長,如mysql和sqlserver,那麼可以設定useGeneratedKeys="true",而且設定keyProperty到你已經做好的目標屬性上 例如:上面的表中已經對id進行了自動生成的列型別,那麼語句可以修改為 <inserrt

SQL Server設定增長列(使用sql語句實現)

Declare @Pk varChar(100);  Select @Pk=Name from sysobjects where Parent_Obj=OBJECT_ID('tb') and xtype='PK';  if @Pk is not null exec('Alter table tb Drop

oracle建立表並新增設定增長

oracle序列詳解和建立自增主鍵 Oracle序列主鍵 序列: 是oacle提供的用於產生一系列唯一數字的資料庫物件。 l 自動提供唯一的數值 l 共享物件 l 主要用於提供主鍵值

mybaits 配置insert 自動增長失效原因

初次涉獵mybaits 框架和mysql 資料庫導致框架使用出現很多的低階失誤,在此分享給大家避免此類錯誤: 配置檔案 <insert id="insertUser1" parameterType="domain.User" useGenerated

一開始 一直不明白,自動增長sqlite裡面是如何插入的

後來發現,只要不寫這個欄位,或者這個欄位插入的是NULL就行。注意:是NULL,不是字串,也不是物件。 不管程式碼中有沒有是否為空的限制,只要在用navicat 開啟的時候,沒有 notnull的限

獲取自動增長ID(Oracle/MSSQL/mysql),取得剛插入的ID編號

iBatis的SQLMap配置檔案的selectKey元素有個type屬性,可以指定pre或者post表示前生成(pre)還是後生成(post)。 Oracle設定  1<!-- Oracle SEQUENCE -->2<insert id="insertProduct-ORACLE" pa

oracle中如何設定並且讓其自動增長

1、建立資料庫 create table USERINFO ( USERNO NUMBER not null, USERNAME NVARCHAR2(20), USERPWD NVARCHAR2(20) ) 2、建立觸發器 create sequence SEQ_Userinf star

hibernate oracle增長中sequence跳號無序的問題

1. 配置序列產生器相關屬性 hibernate註解設定資料庫主鍵自增長時,如果oracle表中的主鍵ID沒有按照正常的sequence自增長(+1)存入資料庫。可以在序列產生器中加上allocationSize(步長)屬性的設定,即:在@SequenceGenerator

Hibernate自動生成的幾種常用型別

1.Assigned 主鍵由資料庫內部生成,無需Hibernate干預。 2.hilo 需要額外資料庫表儲存主鍵生成歷史狀態。 3.increment 在例項中維持一個變數,以儲存當前最大值。多例項訪問時可能會出錯。 4.identity 採用資料庫提供的生成機制,如

hibernate+oracle下使用sequence策略設定的方法

首先建立一個序列:       CREATE SEQUENCE SHOPPING_SEQ       NOCYCLE    ORDER     //不迴圈       CACHE 20     //快取大小為20      NOMAXVALUE     //無上限     

對於現在已有表 設定,非空和自增長的 語句

ALTER TABLE ai_report_date MODIFY COLUMN id int(11) NOT NULL AUTO_INCREMENT FIRST , ADD PRIMARY KE

Hibernate框架的生成策略

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