程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> hbm配置文件 generator節點各種解釋,

hbm配置文件 generator節點各種解釋,

編輯:Oracle教程

hbm配置文件 generator節點各種解釋,


今天犯了個錯誤

  generator節點class屬性有這麼幾個值(主鍵生成策略方案):

  assigned:由用戶指定主鍵值

  sequence:由oracle序列生成

  increment:對類型為long,short,int的主鍵,以自增長的方式生成主鍵值,增量為1

  identity:在oracle中沒用,因為他是支持標志列的數據庫能夠用的

  native: 由hibernate決策(大家自己測吧)

  當我們配置節點屬性為assigned時,並且沒有為主鍵賦值:

  

  當節點屬性為increment時我們運行:

      

  可以看到執行了查詢語句,他在查詢最大的gradeid,而我的表為空表,所以查不到任何值,並沒有執行更新或者插入的操作

  transction錯誤可以忽略,這個錯誤是因為之前測試的時候沒有begintransaction(),在save前面加上session.beginTransaction();就能解決

  解決方案:

  • 在執行save()操作前,給id賦值
  • 更改生成策略為sequence(前提有序列)
  • 在表不為空的前提下使用increment

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved