1. 程式人生 > >Hibernate內建的持久化識別符號生成器

Hibernate內建的持久化識別符號生成器

    <id
    access="field"
    name="id"
    type=""
    column=""
    
    >

      <generator class="native"/>

    不能確定使用什麼樣的自增策略的時候可以選用native

      <generator class="increment"/>
      id欄位並未被設定為自增型別,id欄位的值是由hibernate自動生成的。主鍵的值是以1為增量遞增的,即使讀者在程式中將資料庫表中的記錄全部刪除,在其後新增的記錄的主鍵值仍然是以記錄刪除前的主鍵值為基數的,如果將表清空的話則主鍵值是從1開始的。因為hibernate在設定主鍵值的時候會先執行 select max(id) from Table。

      <generator class="identity"/>

identity標示符生成器的實現機制是由底層資料庫而不是由hibernate控制,所以在表清空之後並不會從1開始計數。

      <generator class="sequence"/>
       <generator class="hilo">
      <param name="table">表名</param>
      <param name="column">存放新標誌符的欄位名</param>
      <param name="max_lo">100</param>

      </generator>

演算法第一條的id為0,每迴圈一圈,hi的值就增加1 ,即0*(100+1)+0;0*(100+1)+1;下一輪:1*(100+1)+0;1*(100+1)+1;

      <generator class="assigned"/>

資料庫表的主鍵不再按照某個增量自增,而變成了讀者在應用程式中指定的值,必須在把記錄插入資料庫之前,給主鍵值賦值。

      <generator class="foreign"/>

    </id>

//複合主鍵

  <composite-id  class="" mapped="true">
    <key-property name=""></key-property>
    <key-property name=""></key-property>

    <key-many-to-one name="factory" class="Factory" column="factory_id"></key-many-to-one>

子元素進行多對一的關聯對映,從而建立了具有符合主鍵的實體和其他實體的多對一的關聯。

對映檔案類通過<key-many-to-one>建立了與類Factory之間的党項多對一的關聯,相應的在類中應該有一個Factory型別的factory屬性在表中也應該有一個factory_id的外來鍵。

    </composite-id>

使用複合主鍵的持久化類的時候,必須實現java.io.Serializable介面,另外還必須過載hashCode()方法和equals()方法來實現組合標示符的判斷。

class的值表示複合主鍵被對映為一個新類,類中也包含被定義的聯合主鍵的屬性,mapped為true的時候表明在原有的類中仍然包含這兩個屬性的值,並且也包含對映的類。如果獲取值的話,原類.get聯合主鍵的對映類().get聯合主鍵();

相關推薦

Hibernate持久化識別符號生成器

    <id     access="field"     name="id"     type=""     column=""          >      <generator class="native"/>     不能確定使用什麼

python列表解析式,生成器,及部分函數使用方法

法國 set mime 惰性 ring pla ges 函數 calendar 標準庫datetime 需要導入datetime模塊: import datetime datetime模塊: 對日期,時間,時間戳的處理 datetime的類方法

使用MyEclipse反向工程快速創持久化類、映射文件和Hibernate組件

acl next 映射 oracl 模板 反向 安裝 9.png ins 在MyEclipse中創建連接模板 一、選中此項 二、右鍵新建一個連接模板 三、進入此頁面依次選擇數據庫、Driver name 為這個連接模板的名字、點擊Add JARs選擇驅動類(在oracl

python基礎--生成器(續),高階函式

生成器示例 def create_num(all_num): print('-----1-------') a, b = 0, 1 current_num = 0 while current_num < all_nu

day15生成器面試題和函式

1複習 # 迭代器和生成器 # 迭代器 # 可迭代協議 —— 含有iter方法的都是可迭代的 # 迭代器協議 —— 含有next和iter的都是迭代器 # 特點 # 節省記憶體空間 # 方便逐個取值,一個迭代器只能取一次。 # 生成器 —— 迭代

資料庫的連線池的原理與Hibernate連線池及C3P0的配置

<hibernate-configuration><session-factory>DB連線四要素<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

python(四)上:列表生成式、生成器、迭代器和函式

目錄 列表生成式 生成器 迭代器 內建函式 一、列表生成式 列表生成式即List Comprehensions,是Python內建的非常簡單卻強大的可以用來建立list的生成式。 舉個例子,要生成list [1, 2, 3, 4, 5, 6,

Python五種迭代方式 for迴圈,列表推導式,函式map(),生成器推導式,生成器函式 速度對比

對比了Python3的五種迭代方式進行函式簡單計算的花費時間 五種迭代分別是,for迴圈,列表推導式,內建函式map(),生成器推導式,生成器函式 簡單計算以add()加10操作和abs()絕對值舉例

記錄我的 python 學習歷程-Day12 生成器/推導式/函式Ⅰ

一、生成器 初識生成器 生成器的本質就是迭代器,在python社群中,大多數時候都把迭代器和生成器是做同一個概念。 唯一的不同就是: 迭代器都是Python給你提供的已經寫好的工具或者通過資料轉化得來的,(比如檔案控制代碼,iter([1,2,3])。 生成器是需要我們自己用python程式碼構建的工具。最

零基礎學python-4.2 其它類型

介紹 src one 一個 tex == water 文件 div 這一章節我們來聊聊其它內建類型 1.類型type 在python2.2的時候,type是通過字符串實現的,再後來才把類型和類統一 我們再次使用上一章節的圖片來說明一些問題 我們通

【函數】isinstance函數(小窗help)

是否 clas dict 百度 .com text 子類 als float #學到了第八天,還有很多沒有理解,不過,沒關系,相信任何復雜的問題都是由簡單的組成,只有將每一個細節理解到位,自然問題迎刃而解 今天遇到了isinstace函數,忘了,先看一下語法 查百度附上鏈接

python中函數isinstance的用法

pytho class cnblogs 這樣的 一個 blog object font 元組 isinstance:Python中的一個內建函數 語法: isinstance(object, classinfo) 1、如果參數object是classinfo的實例,

筆記:MyBatis XML配置-typeAliases 別名表

short batis big int arraylist spa myba bottom one 別名 映射的類型 _byte byte _long long _short short _int int _integer int _double double _float

Linux函數

內建函數hex() 10進制轉為16進制oct() 10進制轉8bin() 10轉2ord() 字符轉asciichr() ascii轉字符decimal 金融型 計算模塊list() 把可叠代對象轉為列表str() 把obj對象轉換成字符串tuple() 把可叠代對象轉換成一個元組對象len(se

python中經常使用的字典函數

哈希 popu blog default app ping 復制 none you 1、len(mapping) 返回映射的長度(鍵-值對的個數) 2、hash(obj) 返回o

轉義字符,格式化符號和函數

小數點 com api table 它的 backspace for 字母 宋體 轉義字符描述 \(在行尾時) 續行符 \\ 反斜杠符號 \‘ 單引號 \" 雙引號 \a 響鈴 \b 退格(Backspace) \e 轉義 \000 空

字符串的函數

是否 echars end 開頭 -1 false 檢測 str2 sta Python 的字符串內建函數 Python 的字符串常用內建函數如下: 序號方法及描述 1 capitalize()將字符串的第一個字符轉換為大寫 2 center(wi

Python globals() locals() vars() 三個函數的區別

https 聲明 usr object index 函數 targe outer ref 首先參考官方文檔對這三個函數的介紹: 2. Built-in Functions – Python3.5 1、globals() 返回當前全局符號表, 通常是返回當前模塊下的全局符號表

python函數

call src print true bool nco cnblogs color 都是 #abs 求絕對值 print(abs(-1)) #all #判斷函數內部的布爾值,如果都是Trun則返回true #空是True print(all([1,2,‘a‘,Non

(轉)論python工廠函數與函數

符號 靜態 iss == hex 功能 小寫 生產 find() 所謂工廠函數就是指這些內建函數都是類對象, 當你調用它們時,實際上是創建了一個類實例。 工廠函數: int(),long(),float(),complex(),bool() str(),unicode(