錛戯紟name錛氬睘鎬у悕銆傛寚鍑簃any涓鏂圭殑綾葷敤鍝釜灞炴у拰one涓鏂圭殑綾誨叧鑱旓紟
錛掞紟column錛氬瓧孌靛悕錛堝彲閫夛級錛庢寚鍑簃any涓鏂圭殑綾誨搴旂殑鏁版嵁琛ㄧ敤鍝釜鍒楀拰one涓鏂圭殑綾誨搴旂殑鏁版嵁琛ㄥ叧鑱旓紙涓よ〃涔嬮棿瀛樺湪澶栭敭鍏寵仈錛夛紱
錛擄紟class錛氬叧鑱旂殑綾葷殑鍚嶅瓧錛堝彲閫?- 榛樿鏄氳繃鍙嶅皠寰楀埌灞炴х被鍨嬶級錛?br />
錛旓紟cascade錛氭寚鏄庡摢浜涙搷浣滀細浠庣埗瀵硅薄綰ц仈鍒板叧鑱旂殑瀵硅薄錛堝彲閫夛級錛?font face="Courier New">cascade灞炴у厑璁鎬笅鍒楀鹼細: all
, save-update
, delete
, none
. 璁劇疆闄や簡none
浠ュ鐨勫叾瀹冨間細浼犳挱鐗瑰畾鐨勬搷浣滃埌鍏寵仈鐨勶紙瀛愶級瀵硅薄涓?br />
錛曪紟outer-join錛氬綋璁劇疆hibernate.use_outer_join
鐨勬椂鍊欙紝瀵硅繖涓叧鑱斿厑璁稿榪炴帴鎶撳彇錛堝彲閫?- 榛樿涓?auto
錛夛紟outer-join鍙傛暟鍏佽涓嬪垪涓変釜涓嶅悓鍊鹼細 auto錛堜嬌鐢ㄥ榪炴帴鎶撳彇鍏寵仈錛堝璞★級錛屽鏋滆鍏寵仈鐨勫璞℃病鏈変唬鐞?proxy) 錛夛紝true錛堜竴鐩翠嬌鐢ㄥ榪炴帴鏉ユ姄鍙栧叧鑱旓級錛宖alse錛堟案榪滀笉浣跨敤澶栬繛鎺ユ潵鎶撳彇鍏寵仈錛夛紱
錛栵紟update,insert錛氭寚瀹氬搴旂殑瀛楁鏄惁鍦ㄧ敤浜?code>UPDATE 鍜?鎴?INSERT
鐨凷QL璇彞涓寘鍚傚鏋滀簩鑰呴兘鏄?code>false,鍒欒繖鏄竴涓函綺圭殑“澶栨簮鎬э紙derived錛?#8221;鍏寵仈錛屽畠鐨勫兼槸閫氳繃鏄犲皠鍒板悓涓涓紙鎴栧涓級瀛楁鐨勬煇浜涘叾浠栧睘鎬у緱鍒扮殑錛屾垨鑰呴氳繃trigger(闄ゆ硶鍣級錛屾垨鑰呮槸鍏朵粬紼嬪簭錛堝彲閫?- 榛樿涓?true
錛?br />
錛楋紟property-
ref錛氭寚瀹氬叧鑱旂被鐨勪竴涓睘鎬э紝榪欎釜灞炴у皢浼氬拰鏈閿浉瀵瑰簲銆傚鏋滄病鏈夋寚瀹氾紝浼氫嬌鐢ㄥ鏂瑰叧鑱旂被鐨勪富閿紙鍙夛級錛巔roperty-ref灞炴у彧搴旇鐢ㄦ潵瀵?
浠樿佹棫鐨勬暟鎹簱緋葷粺錛屽彲鑳藉嚭鐜板閿寚鍚戝鏂瑰叧鑱旇〃鐨勬槸涓潪涓婚敭瀛楁錛堜絾鏄簲璇ユ槸涓涓儫涓鍏抽敭瀛楋級鐨勬儏鍐點傝繖鏄竴縐嶅崄鍒嗕笐闄嬬殑鍏崇郴妯″瀷銆傛瘮濡傝錛屽亣璁?
Product綾繪湁涓涓儫涓鐨勫簭鍒楀彿錛屽畠騫朵笉鏄富閿紱
錛橈紟access錛歂Hibernate 鐢ㄦ潵璁塊棶灞炴х殑絳栫暐錛堝彲閫?- 榛樿涓?code>property錛?br />
錛欙紟unique錛氬厑璁鎬駭鐢熷閿垪鍞竴綰︽潫鐨勬暟鎹簱瀹氫箟璇█錛圖DL錛夛紙鍙夛級
閭d箞鍏充簬Student鐨勬槧灝勫彲鑳芥槸錛?/p>
鍙鍦ㄥ師Student.hbm.xml鏄犲皠鏂囦歡涓坊鍔爉any-to-one鏍囩灝卞彲浠ヤ簡錛?br />
瀵逛簬Sturent綾誨緱娣誨姞涓涓睘鎬lasses:Classes
one-to-many錛?/strong>涓瀵瑰涔熸槸涓縐嶅父瑙佺殑鏁版嵁妯″瀷錛屽湪鎸夎寖寮忚璁$殑鏁版嵁搴撲腑闅忓鍙銆傚湪NHB涓氳繃one-to-many鍙互闈炲父鏂逛究鐨勫鐞嗚繖縐嶆ā鍨嬶紝鍚屾椂NHB榪樻彁渚涗簡綰ц仈鏇存柊鍜屽垹闄ょ殑鍔熻兘錛屼互淇濊瘉鏁版嵁瀹屾暣鎬с傚湪鏈枃鎻忚堪鐨勪緥瀛愪腑錛孋lasses綾誨拰Student綾繪槸涓瀵瑰鐨勫叧緋伙紟
Classes綾葷殑鏄犲皠鏂囦歡錛欳lasses.hbm.xml
銆銆濡傛槧灝勬枃浠舵墍紺猴紝one-to-many鏍囩蹇呴』鍖呭惈鍦ㄦ爣絳綽ag涓紙涓漢鐞嗚В錛氬鍢涳紝灝辯敤涓涓寘瑁呰搗鏉ワ綖錛?br />
bag鏍囩鐨刵ame灞炴ф寚鍑篈ddress瀵硅薄鐢ㄥ摢涓睘鎬у拰Student瀵硅薄鍏寵仈錛宨nverse灞炴т嬌collection涓嶆洿鏂拌繛鎺ワ紙鎬諱箣錛岃繖涓睘鎬ф彁楂樹簡鎬ц兘錛屽叿浣撶殑鎯呭喌璇峰弬鑰僋Hibernate鐨勫府鍔╂枃妗o級錛?br />
key鏍囩鐨刢olumn灞炴ф寚鍑轟簡Address瀵硅薄瀵瑰簲鐨勬暟鎹〃鐢ㄥ摢涓瓧孌靛拰Student瀵硅薄瀵瑰簲鐨勬暟鎹〃鍏寵仈 銆銆鍦╞ag鏍囩涓紝鍔犲叆浜嗕竴涓猼able灞炴э紝瀹冩寚瀹氫竴涓疄鐜板瀵瑰鐨勪腑闂磋〃
one-to-many鏍囩鐨刢lass灞炴ф寚鍑轟簡Address鍜屽摢涓璞″叧鑱旓紟
瀵逛簬Classes綾誨緱鍒涘緩涓涓猄tudentList : Student鐨勫睘鎬э紝鐢ㄦ潵鎻忚堪涓嶴tudent瀵硅薄鐨勫叧緋伙紟
many-to-many錛?/strong>澶氬澶氬湪鏁版嵁搴撲腑涔熸槸甯歌鐨勬暟鎹ā鍨嬶紝鍍忕敤鎴蜂笌緇勶紝鐢ㄦ埛涓庢潈闄愮瓑銆傚瀵瑰鍏崇郴闇瑕侀氳繃涓涓腑闂磋〃瀹炵幇錛宔lement鐨勫氨鏄鍙栬繖涓腑闂磋〃涓煇鍒楃殑鍊箋傚湪鏈枃鐨勪緥瀛愪腑錛孲tudent綾誨拰Subject綾繪槸澶氬澶氱殑鍏崇郴錛?br />
Student鐨勬槧灝勫彲鑳芥槸錛?/p>
<bag name="SubjectList" table="r_Student_Subject" inverse="true" cascade="save-update" lazy="false">
<key column="StudentID" />
<many-to-many class="NHibernateTest.Subject,NHibernateTest" column="ID" outer-join="auto" />
</bag>
瀹屾暣鐨凷tudent.hbm.xml婧愮爜濡備笅錛?/p>
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
<class name="NHibernateTest.Student,NHibernateTest" table="Users">
<id name="UserID" column="ID" type="Int32" unsaved-value="0">
<generator class="identity"/>
</id>
<property name="UserName" column="UserName" type="String" length="20"/>
<property name="Password" column="Password" type="String" length="20"/>
<!--Student綾誨拰NativePlace綾繪槸涓瀵逛竴鐨勫叧緋?/span>-->
<one-to-one name="NativePlace" class="NHibernateTest.NativePlace,NHibernateTest" cascade="all" />
<!--Student綾誨拰Classes綾繪槸澶氬涓鐨勫叧緋?/span>-->
<many-to-one name="Classes" column="cID" unique ="true"/>
<!--Student綾誨拰Address綾繪槸涓瀵瑰鐨勫叧緋?/span>-->
<bag name="AddressList" cascade="all" inverse="true">
<key column="ID" />
<one-to-many class="NHibernateTest.Address,NHibernateTest" />
</bag>
<!--Student綾誨拰Subject綾繪槸澶氬澶氱殑鍏崇郴-->
<bag name="SubjectList" table="r_Student_Subject" inverse="true" cascade="save-update" lazy="false">
<key column="StudentID" />
<many-to-many class="NHibernateTest.Subject,NHibernateTest" column="ID" outer-join="auto" />
</bag>
</class>
</hibernate-mapping>
鐢變簬Student鐨勬槧灝勫叧緋繪瘮杈冨鏉傦紝鏈枃灝卞啀鐔堪瀹冪殑CRUD鎿嶄綔錛屽叿浣撶殑鎿嶄綔鏂規硶璇峰弬鑰冩湰鏂囬檮甯︾殑浠g爜錛?
]]>