鍦ㄨ瀹宺obbin鐨勮繖涓や釜綺懼崕璐寸殑鏃跺欙紝鎰熻娓呮櫚浜嗗緢澶氾紝紜疄濂芥枃绔犮?
http://www.javaeye.com/topic/2712
http://www.javaeye.com/topic/1604?page=1
榪樻湁榪欎釜綺懼崕璐?
http://www.javaeye.com/topic/7484
涔熷緢涓嶉敊銆?/p>
閲岄潰鎬葷粨鐨勫緢濂戒簡錛屾垜緇撳悎浠ヤ笂涓変釜甯栧瓙銆佽嚜宸辯殑璇曢獙錛堢増鏈琱ibernate-3.0.5錛夊拰Hibernate鏂囨。涔熸葷粨浜嗕竴鐐癸紝鍔犳繁鐞嗚В銆?strong>甯屾湜瀵瑰垰寮濮嬪Hibernate鐨勫悓瀛︽湁鎵甯姪銆?/strong>
涓銆乻aveorUpdate涓巙nsaved-value
鍒板簳鏄痵ava榪樻槸update
Hibernate闇瑕佸垽鏂鎿嶄綔鐨勫璞$┒绔熸槸涓涓凡緇忔寔涔呭寲榪囩殑鎸佷箙瀵硅薄榪樻槸涓存椂瀵硅薄銆?
1錛夛紟涓婚敭Hibernate鐨刬d generator浜х敓
<id name="id" type="java.lang.Long">
<column name="ID" precision="22" scale="0" />
<generator class="increment" />
</id>
Project project = new Project();
project.setId(XXX);
this.projectDao.saveOrUpdate(project);
1銆侀粯璁nsaved-value="null" 2銆乽nsaved-value="none"錛? 3銆乽nsaved-value="any" Hibernate鏂囨。涓啓鍒? 2錛夛紟涓婚敭鐢辮嚜宸辨潵璧嬪?/strong> Project project = new Project(); 1銆侀粯璁nsaved-value="null" 3銆乽nsaved-value="any" 錛宻ave瀵硅薄錛? 浜屻乻ave涓巙pdate鎿嶄綔 Hibernate鏂囨。涓啓鍒? 涓夈乨elete鎿嶄綔 浠ュ墠鍒犻櫎鎴戞槸榪欐牱鍐欑殑 濡傛灉鏈夌駭鑱斿叧緋伙紝闇瑕佹妸綰ц仈鐨勫瓙綾諱篃鏋勯犲嚭鏉dd榪涘幓錛屽悓鏍峰彲浠ュ垹闄ゃ?/p>
涓婚敭鏄璞$被鍨嬶紝hebernate鍒ゆ柇project鐨勪富閿槸鍚︿綅null錛屾潵鍒ゆ柇project鏄惁宸茶鎸佷箙鍖?/strong>
鏄殑璇濓紝瀵筽roject瀵硅薄鍙戦乻ave(project)錛?
鑻ヨ嚜宸辮緗簡涓婚敭鍒欑洿鎺ョ敓鎴恥pdate鐨剆ql錛屽彂閫乽pdate(project)錛屽嵆渚挎暟鎹簱閲屾病鏈夐偅鏉¤褰曘?
涓婚敭鏄熀鏈被鍨嬪int/long/double/
鑷繁璁劇疆unsaved-null="0"銆?
鎵浠ヨ繖鏍風殑璇漵ave鍜寀pdate鎿嶄綔鑲畾涓嶄細鎶ラ敊銆?/p>
鐢變簬涓嶈涓婚敭灞炴т負浠諱綍鍊鹼紝閮戒笉鍙兘涓簄one錛屽洜姝ibernate鎬繪槸瀵筽roject瀵硅薄鍙戦乽pdate(project)
鐢變簬涓嶈涓婚敭灞炴т負浠諱綍鍊鹼紝閮借偗瀹氫負any錛屽洜姝ibernate鎬繪槸瀵筽roject瀵硅薄鍙戦乻ave(project)錛宧ibernate鐢熸垚涓婚敭銆?/p>
saveOrUpdate()瀹屾垚浜嗗涓嬪伐浣滐細
濡傛灉瀵硅薄宸茬粡鍦ㄨ繖涓猻ession涓寔涔呭寲榪囦簡錛屼粈涔堥兘涓嶇敤鍋?
濡傛灉瀵硅薄娌℃湁鏍囪瘑鍊鹼紝璋冪敤save()鏉ヤ繚瀛樺畠
濡傛灉瀵硅薄鐨勬爣璇嗗間笌unsaved-value涓殑鏉′歡鍖歸厤錛岃皟鐢╯ave()鏉ヤ繚瀛樺畠
濡傛灉瀵硅薄浣跨敤浜嗙増鏈?version鎴杢imestamp),閭d箞闄ら潪璁劇疆unsaved-value="undefined",鐗堟湰媯鏌ヤ細鍙戠敓鍦ㄦ爣璇嗙媯鏌ヤ箣鍓?
濡傛灉榪欎釜session涓湁鍙﹀涓涓璞″叿鏈夊悓鏍風殑鏍囪瘑絎︼紝鎶涘嚭涓涓紓甯?
<id name="id" type="java.lang.Long">
<column name="ID" precision="22" scale="0" />
<generator class="assigned" />
</id>
project.setId(XXX);
this.projectDao.saveOrUpdate(project);
榪欐椂鏈夋墍涓嶅悓錛宧ibernate浼氭牴鎹富閿駭鐢熶竴涓猻elect錛屾潵鍒ゆ柇姝ゅ璞℃槸鍚﹀凡琚寔涔呭寲
宸茶鎸佷箙鍖栧垯update錛屾湭琚寔涔呭寲鍒檚ave銆?
2銆乽nsaved-value="none"錛寀pdate瀵硅薄錛屽悓涓?/p>
濡傛灉鑷繁鑷繁璁劇疆鐨処D鍦ㄦ暟鎹簱涓凡瀛樺湪錛屽垯鎶ラ敊銆?/p>
鏄懼紡鐨勪嬌鐢╯ession.save()鎴栬卻ession.update()鎿嶄綔涓涓璞$殑鏃跺欙紝瀹為檯涓婃槸鐢ㄤ笉鍒皍nsaved-value鐨?
鍦ㄥ悓涓Session錛宻ave娌′粈涔堝彲璇村緱
update瀵硅薄鏃? 鏈鐩存帴鐨勬洿鏀逛竴涓璞$殑鏂規硶灝辨槸load()瀹冿紝淇濇寔Session鎵撳紑錛岀劧鍚庣洿鎺ヤ慨鏀瑰嵆鍙?
Session s =…
Project p = (Project) sess.load(Project.class, id) );
p.setName(“test”);
s.flush();
涓嶇敤璋冪敤s.update(p);hibernate鑳藉療瑙夊埌瀹冪殑鍙樺寲錛屼細鑷姩鏇存柊銆傚綋鐒舵樉紺鴻皟鐢ㄧ殑璇濅篃涓嶄細閿?/p>
update()鏂規硶鍦ㄤ笅鍒楁儏褰笅浣跨敤錛?
紼嬪簭鍦ㄥ墠闈㈢殑session涓杞戒簡瀵硅薄
瀵硅薄琚紶閫掑埌UI錛堢晫闈級灞?
瀵硅瀵硅薄榪涜浜嗕竴浜涗慨鏀?
瀵硅薄琚紶閫掑洖涓氬姟灞?
搴旂敤紼嬪簭鍦ㄧ浜屼釜session涓皟鐢╱pdate()淇濆瓨淇敼
鍒犻櫎鏃剁洿鎺ヨ嚜宸辨瀯閫犱竴涓猵roject鍗沖彲鍒犻櫎
this.projectDao.delete(preojct);
public void deleteProject(String id) {
Project project = (Project) this.projectDao.get(Project.class, id);
if (project != null) {
this.projectDao.delete(project);
}
鍗寵繖鏍蜂篃鏄彲浠ョ殑
Project project = new Project();
project.setId(id);
this.projectDao.delete(project).