課程
/后端開發(fā)
/Java
/Hibernate初探之一對多映射
老師你好,在3.3小節(jié)中,在執(zhí)行add()方法前對grade表和student表都做了清空操作,為什么執(zhí)行后,表中的記錄依然不是從1增加呢?
2016-04-26
源自:Hibernate初探之一對多映射 3-3
正在回答
因?yàn)槔蠋熤皇前堰@張表里面的數(shù)據(jù)刪除,并沒有刪除重新創(chuàng)建這張表。
mysql有一個主鍵自增的屬性,但是不同的數(shù)據(jù)庫引擎對此實(shí)現(xiàn)的方式不同。但相同的是,假如你插入了3條數(shù)據(jù),id自增到3,這時(shí)候你把數(shù)據(jù)全部刪除,表仍然保留,那么下次插入,自增值是4. ?在某些引擎下,你可以修改自增值的下一次初始值,但是不能用以前用過的值。就是說,以前自增到3了,你必須設(shè)置比3大的自增初始值,比如15,那么下一次插入,他將id=15而不是4了。
下面是不同的存儲引擎的區(qū)別:
1.MyISAM刪除最大編號的記錄后,該編號不可重用,可設(shè)定和修改初始值。可使用復(fù)合索引在同一個數(shù)據(jù)表里創(chuàng)建多個相互獨(dú)立的自增序列。了解:復(fù)合索引。
2.InnDB不可重用編號,不可設(shè)置和修改初始值。不支持在一個數(shù)據(jù)表里使用復(fù)合索引來生成多個互不干擾的序列編號。
qq_云在風(fēng)中_0
hibernate.hbm2ddl.auto的值的問題
create:表示啟動的時(shí)候先drop,再createcreate-drop: 也表示創(chuàng)建,只不過再系統(tǒng)關(guān)閉前執(zhí)行一下dropupdate: 這個操作啟動的時(shí)候會去檢查schema是否一致,如果不一致會做scheme更新validate: 啟動時(shí)驗(yàn)證現(xiàn)有schema與你配置的hibernate是否一致,如果不一致就拋出異常,并不做更新
舉報(bào)
Hibernate中一對多關(guān)聯(lián)映射配置,以及cascade和inverse屬性作用
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-06-01
因?yàn)槔蠋熤皇前堰@張表里面的數(shù)據(jù)刪除,并沒有刪除重新創(chuàng)建這張表。
mysql有一個主鍵自增的屬性,但是不同的數(shù)據(jù)庫引擎對此實(shí)現(xiàn)的方式不同。但相同的是,假如你插入了3條數(shù)據(jù),id自增到3,這時(shí)候你把數(shù)據(jù)全部刪除,表仍然保留,那么下次插入,自增值是4. ?在某些引擎下,你可以修改自增值的下一次初始值,但是不能用以前用過的值。就是說,以前自增到3了,你必須設(shè)置比3大的自增初始值,比如15,那么下一次插入,他將id=15而不是4了。
下面是不同的存儲引擎的區(qū)別:
1.MyISAM
刪除最大編號的記錄后,該編號不可重用,可設(shè)定和修改初始值。
可使用復(fù)合索引在同一個數(shù)據(jù)表里創(chuàng)建多個相互獨(dú)立的自增序列。了解:復(fù)合索引。
2.InnDB
不可重用編號,不可設(shè)置和修改初始值。
不支持在一個數(shù)據(jù)表里使用復(fù)合索引來生成多個互不干擾的序列編號。
2016-04-26
hibernate.hbm2ddl.auto的值的問題
create:表示啟動的時(shí)候先drop,再create
create-drop: 也表示創(chuàng)建,只不過再系統(tǒng)關(guān)閉前執(zhí)行一下drop
update: 這個操作啟動的時(shí)候會去檢查schema是否一致,如果不一致會做scheme更新
validate: 啟動時(shí)驗(yàn)證現(xiàn)有schema與你配置的hibernate是否一致,如果不一致就拋出異常,并不做更新