亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

不理解更新操作

我理解的這里的語義是這樣的:

直接從學生表中獲取主鍵為“1”的學生對象

將這個學生對象添加到班級2中

將班級2更新到班級表中。

問題:為什么上面的操作可以改變 ? 學生表中 ?主鍵為“1”的學生 ?的外鍵?

我理解的情況應該是這樣的:原來的主鍵為“1”的學生信息不變,系統再次添加了一個除了外鍵不同其他column都一樣的學生記錄,然后添加失敗,學生表主鍵沖突


正在回答

4 回答

我也覺的奇怪 ?他的主鍵生成策略是increment 就是hibernate生成的主鍵 ?控制臺也是輸出了修改的sql語句 ?怎么會是修改了? ?而不是重新添加一條? 好神奇

0 回復 有任何疑惑可以回復我~
#1

哀幻暝 提問者

我猜的啊:更新操作,根本上就是寫了一堆update的sql代碼,update當然會自動覆蓋原來的列了
2016-10-30 回復 有任何疑惑可以回復我~
#2

慕粉3291149 回復 哀幻暝 提問者

你仔細看更新語句,只是更新了張三的gid而已,更新操作并不會修改該學生的主鍵Id, 兄弟沒學過數據庫吧
2016-11-24 回復 有任何疑惑可以回復我~

其實我也是剛剛學到這個框架 很多問題也不明白 等其他的大神來答吧~

0 回復 有任何疑惑可以回復我~

主鍵自帶唯一非空約束啊,而且之后張三的id依然是“1”而不是“3”。可以排除hibernate自動刪除原記錄再增加一條的這種可能,hibernate只是做了修改,問題依然是:怎么被修改的!

0 回復 有任何疑惑可以回復我~
#1

慕粉3291149

沒什么問題 , 你新建了一個二班,將原來一班的張三加入到了一班,數據庫做的操作只是把張三的gid由1變為2,僅此而已,不用想太多
2016-11-24 回復 有任何疑惑可以回復我~

我的理解是,你在更新了班級信息的同時,學生信息的主鍵也被重置了,因為主鍵只是自增,并沒有相關的約束!

而外鍵由于有約束,所以和新表相對應

http://img1.sycdn.imooc.com//57fb88760001f90003530148.jpg

0 回復 有任何疑惑可以回復我~
#1

哀幻暝 提問者

你這么一說,我回憶起來上一門課中老師說過,在設置了主鍵自增的情況下,即使手動設置主鍵也是無效的
2016-10-10 回復 有任何疑惑可以回復我~
#2

哀幻暝 提問者 回復 哀幻暝 提問者

怎么被修改的!!
2016-10-10 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Hibernate初探之一對多映射
  • 參與學習       42163    人
  • 解答問題       310    個

Hibernate中一對多關聯映射配置,以及cascade和inverse屬性作用

進入課程

不理解更新操作

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號