锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品久久久久秋霞鲁丝,一二三中文字幕在线,亚洲欧洲偷拍精品http://www.aygfsteel.com/macrochao/category/29351.htmlzh-cnSun, 03 Feb 2008 14:59:03 GMTSun, 03 Feb 2008 14:59:03 GMT60Hibernate鐨剈nsaved-valuehttp://www.aygfsteel.com/macrochao/articles/179208.htmlmacrochaomacrochaoSun, 03 Feb 2008 09:28:00 GMThttp://www.aygfsteel.com/macrochao/articles/179208.htmlhttp://www.aygfsteel.com/macrochao/comments/179208.htmlhttp://www.aygfsteel.com/macrochao/articles/179208.html#Feedback0http://www.aygfsteel.com/macrochao/comments/commentRss/179208.htmlhttp://www.aygfsteel.com/macrochao/services/trackbacks/179208.html褰撲綘鏄懼紡鐨勪嬌鐢╯ession.save()鎴栬卻ession.update()鎿嶄綔涓涓璞$殑鏃跺欙紝瀹為檯涓婃槸鐢ㄤ笉鍒?span style="color: #ffa34f">unsaved-value鐨勩傛煇浜涙儏鍐典笅(鐖跺瓙琛ㄥ叧鑱斾繚瀛?錛屽綋浣犲湪紼嬪簭涓茍娌℃湁鏄懼紡鐨勪嬌鐢╯ave鎴栬卽pdate涓涓寔涔呭璞★紝閭d箞Hibernate闇瑕佸垽鏂鎿嶄綔鐨勫璞$┒绔熸槸涓涓凡緇忔寔涔呭寲榪囩殑鎸佷箙瀵硅薄錛屾槸涓涓皻鏈鎸佷箙鍖栬繃鐨勫唴瀛樹復鏃跺璞°備緥濡傦細

java浠g爜:

Session session = ...;
Transaction tx = ...;

Parent parent = (Parent) session.load(Parent.class, id);

Child child = new Child();
child.setParent(parent);
child.setName("sun");

parent.addChild(child);
s.update(parent);

s.flush();
tx.commit();
s.close();


鍦ㄤ笂渚嬩腑錛岀▼搴忓茍娌℃湁鏄懼紡鐨剆ession.save(child); 閭d箞Hibernate闇瑕佺煡閬揷hild絀剁珶鏄竴涓復鏃跺璞★紝榪樻槸宸茬粡鍦ㄦ暟鎹簱涓湁鐨勬寔涔呭璞°傚鏋渃hild鏄竴涓柊鍒涘緩鐨勪復鏃跺璞?鏈緥涓氨鏄繖縐嶆儏鍐?錛岄偅涔圚ibernate搴旇鑷姩浜х敓session.save(child)榪欐牱鐨勬搷浣滐紝濡傛灉child鏄凡緇忓湪鏁版嵁搴撲腑鏈夌殑鎸佷箙瀵硅薄錛岄偅涔圚ibernate搴旇鑷姩浜х敓session.update(child)榪欐牱鐨勬搷浣溿?

鍥犳鎴戜滑闇瑕佹殫紺轟竴涓婬ibernate錛岀┒绔焎hild瀵硅薄搴旇瀵瑰畠鑷姩save榪樻槸update銆傚湪涓婁緥涓紝鏄劇劧鎴戜滑搴旇鏆楃ずHibernate瀵筩hild鑷姩save錛岃屼笉鏄嚜鍔╱pdate銆傞偅涔圚ibernate濡備綍鍒ゆ柇絀剁珶瀵筩hild鏄痵ave榪樻槸update鍛紵瀹冧細鍙栦竴涓媍hild鐨勪富閿睘鎬?child.getId() 錛岃繖閲屽亣璁緄d鏄?java.lang.Integer綾誨瀷鐨勩傚鏋滃彇鍒扮殑Id鍊煎拰hbm鏄犲皠鏂囦歡涓寚瀹氱殑unsave-value鐩哥瓑錛岄偅涔圚ibernate璁や負child鏄柊鐨勫唴瀛樹復鏃跺璞★紝鍙戦乻ave錛屽鏋滀笉鐩哥瓑錛岄偅涔圚ibernate璁や負child鏄凡緇忔寔涔呰繃鐨勫璞★紝鍙戦乽pdate銆?

unsaved-value="null" (榛樿鎯呭喌錛岄傜敤浜庡ぇ澶氭暟瀵硅薄綾誨瀷涓婚敭 Integer/Long/String/...)

褰揌ibernate鍙栦竴涓媍hild鐨処d錛屽彇鍑烘潵鐨勬槸null(鍦ㄤ笂渚嬩腑鑲畾鍙栧嚭鏉ョ殑鏄痭ull)錛屽拰unsaved-value璁懼畾鍊肩浉絳夛紝鍙戦乻ave(child)

褰揌ibernate鍙栦竴涓媍hild鐨刬d錛屽彇鍑烘潵鐨勪笉鏄痭ull錛岄偅涔堝拰unsaved-value璁懼畾鍊間笉鐩哥瓑錛屽彂閫乽pdate(child)

渚嬪涓嬮潰鐨勬儏鍐碉細

java浠g爜:

Session session = ...;
Transaction tx = ...;

Parent parent = (Parent) session.load(Parent.class, id);
Child child = (Child) session.load(Child.class, childId);

child.setParent(parent);
child.setName("sun");

parent.addChild(child);
s.update(parent);

s.flush();
tx.commit();
s.close();


child宸茬粡鍦ㄦ暟鎹簱涓湁浜嗭紝鏄竴涓寔涔呭寲鐨勫璞★紝涓嶆槸鏂板垱寤虹殑錛屽洜姝ゆ垜浠笇鏈汬ibernate鍙戦乽pdate(child)錛屽湪璇ヤ緥涓紝Hibernate鍙栦竴涓媍hild.getId()錛屽拰unsave-value鎸囧畾鐨刵ull姣斿涓涓嬶紝鍙戠幇涓嶇浉絳夛紝閭d箞鍙戦乽pdate(child)銆?

BTW: parent瀵硅薄涓嶉渶瑕佹搷蹇冿紝鍥犱負紼嬪簭鏄懼紡鐨勫parent鏈塴oad鎿嶄綔鍜寀pdate鐨勬搷浣滐紝涓嶉渶瑕丠ibernate鑷繁鏉ュ垽鏂┒绔熸槸save榪樻槸update浜嗐傛垜浠娉ㄦ剰鐨勫彧鏄痗hild瀵硅薄鐨勬搷浣溿傚彟澶?span style="color: #ffa34f">unsaved-value
鏄畾涔夊湪Child綾葷殑涓婚敭灞炴т腑鐨勩?

java浠g爜:

<class name="Child" table="child">
<id column="id" name="id" type="integer" unsaved-value="null">
<generator class="identity"/>
</id>
...
</class>


濡傛灉涓婚敭灞炴т笉鏄璞″瀷錛岃屾槸鍩烘湰綾誨瀷錛屽int/long/double/...錛岄偅涔堜綘闇瑕佹寚瀹氫竴涓暟鍊煎瀷鐨?span style="color: #ffa34f">unsaved-value
錛屼緥濡傦細

java浠g爜:

unsaved-null="0"


鍦ㄦ鎻愰啋澶у錛屽緢澶氫漢浠ヤ負瀵逛富閿睘鎬у畾涔変負int/long錛屾瘮瀹氫箟涓篒nteger/Long榪愯鏁堢巼鏉ュ緱楂橈紝璁や負鍩烘湰綾誨瀷涓嶉渶瑕佽繘琛屽璞$殑灝佽鍜岃В鏋勬搷浣滐紝鍥犳鍠滄鎶婁富閿畾涔変負int/long鐨勩備絾瀹為檯涓婏紝Hibernate鍐呴儴鎬繪槸鎶婁富閿漿鎹負瀵硅薄鍨嬭繘琛屾搷浣滅殑錛屽氨綆椾綘瀹氫箟涓篿nt/long鍨嬬殑錛孒ibernate鍐呴儴涔熻榪涜涓嬈″璞℃瀯閫犳搷浣滐紝榪斿洖緇欎綘鐨勬椂鍊欙紝榪樿榪涜瑙f瀯鎿嶄綔錛屾晥鐜囧彲鑳藉弽鑰屼綆涔熻涓嶅畾銆傚洜姝ゅぇ瀹朵竴瀹氳鎵漿涓涓鐐癸紝鍦℉ibernate涓紝涓婚敭灞炴у畾涔変負鍩烘湰綾誨瀷錛屽茍涓嶈兘澶熸瘮瀹氫箟涓哄璞″瀷鏁堢巼鏉ョ殑楂橈紝鑰屼笖涔熷浜嗗緢澶氶夯鐑︼紝鍥犳寤鴻澶у浣跨敤瀵硅薄鍨嬬殑Integer/Long瀹氫箟涓婚敭銆?

unsaved-value="none"鍜?
unsaved-value="any"

涓諱富瑕佺敤鍦ㄤ富閿睘鎬т笉鏄氳繃Hibernate鐢熸垚錛岃屾槸紼嬪簭鑷繁setId()鐨勬椂鍊欍?

鍦ㄨ繖閲屽璇翠竴鍙ワ紝寮虹儓寤鴻浣跨敤Hibernate鐨刬d generator錛屾垨鑰呬綘鍙互鑷繁鎵╁睍Hibernate鐨刬d generator錛岀壒鍒敞鎰忎笉瑕佷嬌鐢ㄦ湁瀹為檯鍚箟鐨勫瓧孌靛綋鍋氫富閿潵鐢紒渚嬪鐢ㄦ埛綾籙ser錛屽緢澶氫漢鍠滄鐢ㄧ敤鎴風櫥闄嗗悕縐板仛涓轟富閿紝榪欐槸涓涓緢涓嶅ソ鐨勪範鎯紝褰撶敤鎴風被鍜屽叾浠栧疄浣撶被鏈夊叧鑱斿叧緋葷殑鏃跺欙紝涓囦竴浣犻渶瑕佷慨鏀圭敤鎴風櫥闄嗗悕縐幫紝涓鏀瑰氨闇瑕佹敼濂藉嚑寮犺〃涓殑鏁版嵁銆傚伓鍚堟уお楂橈紝鑰屽鏋滀綘浣跨敤鏃犱笟鍔℃剰涔夌殑id generator錛岄偅涔堜慨鏀圭敤鎴峰悕縐幫紝灝卞彧淇敼user琛ㄥ氨琛屼簡銆?

鐢辮繖涓棶棰樺紩鐢沖嚭鏉ワ紝濡傛灉浣犱弗鏍兼寜鐓ц繖涓師鍒欐潵璁捐鏁版嵁搴擄紝閭d箞浣犲熀鏈笂鏄敤涓嶅埌鎵嬪伐鏉etId()鐨勶紝浣犵敤Hibernate鐨刬d generator灝監K浜嗐傚洜姝や綘涔熶笉闇瑕佷簡瑙e綋

unsaved-value="none"鍜?
unsaved-value="any"

絀剁珶鏈変粈涔堝惈涔変簡銆傚鏋滀綘闈炶鐢╝ssigned涓嶅彲錛岄偅涔堢戶緇В閲婁竴涓嬶細

unsaved-value="none" 鐨勬椂鍊欙紝鐢變簬涓嶈涓婚敭灞炴т負浠諱綍鍊鹼紝閮戒笉鍙兘涓簄one錛屽洜姝ibernate鎬繪槸瀵筩hild瀵硅薄鍙戦乽pdate(child)

unsaved-value="any" 鐨勬椂鍊欙紝鐢變簬涓嶈涓婚敭灞炴т負浠諱綍鍊鹼紝閮借偗瀹氫負any錛屽洜姝ibernate鎬繪槸瀵筩hild瀵硅薄鍙戦乻ave(child)

澶у鏁版儏鍐典笅錛屼綘鍙互閬垮厤浣跨敤assigned錛屽彧鏈夊綋浣犱嬌鐢ㄥ鍚堜富閿殑鏃跺欎笉寰椾笉鎵嬪伐setId()錛岃繖鏃跺欓渶瑕佷綘鑷繁鑰冭檻絀剁珶鎬庝箞璁劇疆unsaved-value浜嗭紝鏍規嵁浣犺嚜宸辯殑闇瑕佹潵瀹氥?

BTW: Gavin King寮虹儓涓嶅緩璁嬌鐢╟omposite-id錛屽己鐑堝緩璁嬌鐢║serType銆?

鍥犳錛屽鏋滀綘鍦ㄧ郴緇熻璁$殑鏃跺欙紝閬靛驚濡備笅鍘熷垯錛?

1銆佷嬌鐢℉ibernate鐨刬d generator鏉ョ敓鎴愭棤涓氬姟鎰忎箟鐨勪富閿紝涓嶄嬌鐢ㄦ湁涓氬姟鍚箟鐨勫瓧孌靛仛涓婚敭錛屼笉浣跨敤assigned銆?

2銆佷嬌鐢ㄥ璞$被鍨?String/Integer/Long/...)鏉ュ仛涓婚敭錛岃屼笉浣跨敤鍩虹綾誨瀷(int/long/...)鍋氫富閿?

3銆佷笉浣跨敤composite-id鏉ュ鐞嗗鍚堜富閿殑鎯呭喌錛岃屼嬌鐢║serType鏉ュ鐞嗚縐嶆儏鍐點?/span>

閭d箞浣犳案榪滅敤鐨勬槸unsaved-value="null" 錛屼笉鍙兘鐢ㄥ埌any/none/..浜嗐?/span>


macrochao 2008-02-03 17:28 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 武安市| 崇礼县| 大洼县| 抚州市| 蓬溪县| 育儿| 洪洞县| 黔西县| 宁都县| 隆德县| 安庆市| 中山市| 藁城市| 海宁市| 桃源县| 河西区| 凌源市| 茌平县| 瑞昌市| 河北省| 银川市| 辽阳县| 五大连池市| 吉木萨尔县| 云浮市| 兴国县| 开鲁县| 江口县| 开封县| 西青区| 清新县| 连城县| 保德县| 兴业县| 长子县| 东阿县| 华池县| 温州市| 乐昌市| 甘肃省| 苍南县|