第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問hibernate中的<generater class="native">什么意思?

請問hibernate中的<generater class="native">什么意思?

函數(shù)式編程 2019-08-22 18:09:10
hibernate中的<generater class="native">什么意思
查看完整描述

5 回答

?
紅糖糍粑

TA貢獻1815條經(jīng)驗 獲得超6個贊

hibernate 的配置文件中g(shù)enerator 表示id 的生成方式,常用的有native ,increment等方式

查看完整回答
反對 回復(fù) 2019-08-23
?
慕虎7371278

TA貢獻1802條經(jīng)驗 獲得超4個贊

native有天生的,本土的,也就是說生來就有的,
那也就是說自動生成,不需要人工來幫忙或者管控的.

而assigned是指指定的,分配的,
如果你不賦予他甚麼東西,那麼他是不能實現(xiàn)的.
需要人工,自己把某個東西賦予給它
所以是assigned

在用Hibernate的時候,當(dāng)有表中的主鍵是庫自動生成的時候?qū)⑹褂胣ative。
<generator class="native"></generator>
而當(dāng)是自己添加的時候則需要改為assigned。
<generator class="assigned"></generator>
否則將會出現(xiàn)異常!

如果建表時,該表主鍵類型是integer,并設(shè)置成auto-increment,用native;該表主鍵類型是string類型的,用uuid.hex

查看完整回答
反對 回復(fù) 2019-08-23
?
蠱毒傳說

TA貢獻1895條經(jīng)驗 獲得超3個贊

這是用來設(shè)置主鍵生成策略的。

 

具體策略:

 

Hibernate的Generator屬性有7種class,本文簡略描述了這7種class的意義和用法。

1、identity:用于MySql數(shù)據(jù)庫。特點:遞增 

< id name="id" column="id">       < generator class="identity"/>   < /id> 

注:對于MySql數(shù)據(jù)庫使用遞增序列時需要在建表時對主鍵指定為auto_increment屬性。

2、sequence:用于Oracle數(shù)據(jù)庫 

< id name="id" column="id">      < generator class="sequence">        < param name="sequence">序列名< /param>      < /generator>   < /id> 

3、native:跨數(shù)據(jù)庫時使用,由底層方言產(chǎn)生。 

Default.sequence為hibernate_sequence

< id name="id" column="id">      < generator class="native"/>   < /id>   

注:使用native時Hibernate默認(rèn)會去查找Oracle中的hibernate_sequence序列。 

如果Oracle中沒有該序列,連Oracle數(shù)據(jù)庫時會報錯。

4、hilo:通過高低位合成id,先建表hi_value,再建列next_value。必須要有初始值。

< id name="id" column="id">       < generator class="hilo">         < param name="table">high_val< /param>          < param name="column">nextval< /param>         < param name="max_lo">5< /param>       < /generator>   < /id>  

5、sequencehilo:同過高低位合成id,建一個sequence序列,不用建表。 

< id name="id" column="id">   < generator class="hilo">   < param name="sequence">high_val_seq< /param>   < param name="max_lo">5< /param>   < /generator>   < /id> 

6、assigned:用戶自定義id; 

< id name="id" column="id">   < generator class="assigned"/>   < /id> 

7、foreign:用于一對一關(guān)系共享主健時,兩id值一樣。



查看完整回答
反對 回復(fù) 2019-08-23
?
海綿寶寶撒

TA貢獻1809條經(jīng)驗 獲得超8個贊

一般id應(yīng)該是唯一的,所以oracle 設(shè)計了序列,你可以在創(chuàng)建某個表時為其創(chuàng)建唯一的序列,此序列按照一定的規(guī)則產(chǎn)生唯一的id,在你添加記錄時自動生成一個唯一的id給那張表。所以hibernate才有這個<generator>來設(shè)置你的oracle數(shù)據(jù)庫表的對應(yīng)的序列啊。
class為別的值時,有其他的屬性啊,表其實可以沒有序列的。

查看完整回答
反對 回復(fù) 2019-08-23
  • 5 回答
  • 0 關(guān)注
  • 608 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號