Hibernate 配置主鍵生成策略中class值得詳解

最近學院在教授hibernate框架,學到了主鍵生成策略

            <id name="">

                <generator class=""></generator>

            </id>

其中generator中class值有很多,這裏記錄一下常見的幾種值得使用方法:

            native: 根據底層數據庫的能力選擇identity sequence 或者hilo中的一個

            assigned:指定id策略  自己定義  數據類型不定,可以自己定義

            identity: 使用數據庫自己的主鍵生成策略 自動增長

                          僅支持一部分數據庫,Oracle

                            返回值爲int long     

            sequence: 序列 Oracle等數據庫自己的主鍵生成策略 自動增長
                              支持Oracle DB2 DB 。。。

            hilo:高低位算法來生成主鍵值 不依賴數據庫主鍵策略

            uuid: 由Hibernate自動生成,使用UUID生成id

            increment:查詢當前最大的id值,再進行加一使用

                            由Hibernate維護得自動增長

                           有線程安全問題,不推薦使用



說明一下hilo高低位算法的配置和算法

            配置:
                     <generator class="hilo">
                         <param name="table">hi_value</param>
                         <param name="column">next_value</param>
                         <param name="max_lo">100</param>
                     </generator>

             說明:

                     自動生成一個表hi_value
                     依賴表中的next_value值
                     算法:next_value*max_lo+next_value
                              1
                              101
                              202

                              ......

               
         


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章