锘??xml version="1.0" encoding="utf-8" standalone="yes"?>1区1区3区4区产品亚洲,亚洲深深色噜噜狠狠网站,亚洲综合AV在线在线播放 http://www.tkk7.com/zxb90study/category/52259.html浜虹敓璺極婕紝澶氬浜涚煡璇嗘繪槸鏈夌泭澶勭殑zh-cnFri, 27 Jul 2012 06:46:48 GMTFri, 27 Jul 2012 06:46:48 GMT60hibernate+java+sql 涔嬮棿鏁版嵁綾誨瀷杞崲鍏崇郴 http://www.tkk7.com/zxb90study/archive/2012/07/27/384156.htmlzx_bingzx_bingFri, 27 Jul 2012 06:37:00 GMThttp://www.tkk7.com/zxb90study/archive/2012/07/27/384156.html


Hibernate鏄犲皠綾誨瀷
java綾誨瀷
鏍囧噯SQL綾誨瀷

integer
java.lang.Integer
integer

long
java.lang.Long
bigint

short
java.lang.Short
smallint

float
java.lang.Float
float

double
java.lang.Float
double

big_decimal
java.math.BigDecimal
numeric

character
java.lang.String
char(1)

string
java.lang.String
varchar

byte
byte鎴杍ava.lang.Byte
tinyint

boolean
boolean鎴杍ava.lang.Boolean 
bit

yes_no   
boolean鎴杍ava.lang.Boolean
char(1)('Y'/'N')

true_false
boolean鎴杍ava.lang.Boolean
char(1)('Y'/'N')

date
java.util.Date鎴杍ava.sql.Date
date

time
java.util.Date鎴杍ava.sql.Time
time

timestamp
java.util.Date鎴杍ava.sql.timestamp
timestamp

calendar
java.util.Calendar
timestamp

calendar_date
java.util.Calendar
date

binary
byte[]
varbinary鎴朾lob

text
java.lang.String
clob

serializable
java.io.Serializable瀹炰緥
varbinary鎴朾lob

clob
java.sql.Clob
clob

blob
java.sql.Blob
varbinary鎴朾lob

class
java.lang.Class
varchar

locale
java.util.Locale
varchar

timezone
java.util.TimeZone
varchar

currency
java.util.Currency
varchar

zx_bing 2012-07-27 14:37 鍙戣〃璇勮
]]>
澶栭敭鏌ヨ 閬囧埌閿欒:could not initialize proxy - the owning Session was close http://www.tkk7.com/zxb90study/archive/2012/07/27/384153.htmlzx_bingzx_bingFri, 27 Jul 2012 06:13:00 GMThttp://www.tkk7.com/zxb90study/archive/2012/07/27/384153.html
寤惰繜鍒濆鍖栭敊璇槸榪愮敤Hibernate寮鍙戦」鐩椂鏈甯歌鐨勯敊璇傚鏋滃涓涓被鎴栬呴泦鍚堥厤緗簡寤惰繜媯绱㈢瓥鐣ワ紝閭d箞蹇呴』褰撲唬鐞嗙被瀹炰緥鎴栦唬鐞嗛泦鍚堝浜庢寔涔呭寲鐘舵侊紙鍗沖浜嶴ession鑼冨洿鍐咃級鏃訛紝鎵嶈兘鍒濆鍖栧畠銆傚鏋滃湪娓哥鐘舵佹椂鎵嶅垵濮嬪寲瀹冿紝灝變細浜х敓寤惰繜鍒濆鍖栭敊璇?br />
涓嬮潰鎶奀ustomer.hbm.xml鏂囦歡鐨?lt;class>鍏冪礌鐨刲azy灞炴ц涓簍rue錛岃〃紺轟嬌鐢ㄥ歡榪熸绱㈢瓥鐣ワ細

<class name="mypack.Customer" table="CUSTOMERS" lazy="true">

褰撴墽琛孲ession鐨刲oad()鏂規硶鏃訛紝Hibernate涓嶄細绔嬪嵆鎵ц鏌ヨCUSTOMERS琛ㄧ殑select璇彞錛屼粎浠呰繑鍥濩ustomer綾葷殑浠g悊綾葷殑瀹炰緥錛岃繖涓唬鐞嗙被鍏風敱浠ヤ笅鐗瑰緛錛?br />
錛?錛?鐢盚ibernate鍦ㄨ繍琛屾椂鍔ㄦ佺敓鎴愶紝瀹冩墿灞曚簡Customer綾伙紝鍥犳瀹冪戶鎵夸簡Customer綾葷殑鎵鏈夊睘鎬у拰鏂規硶錛屼絾瀹冪殑瀹炵幇瀵逛簬搴旂敤紼嬪簭鏄忔槑鐨勩?br />錛?錛?褰揌ibernate鍒涘緩Customer浠g悊綾誨疄渚嬫椂錛屼粎浠呭垵濮嬪寲浜嗗畠鐨凮ID灞炴э紝鍏朵粬灞炴ч兘涓簄ull錛屽洜姝よ繖涓唬鐞嗙被瀹炰緥鍗犵敤鐨勫唴瀛樺緢灝戙?br />錛?錛夊綋搴旂敤紼嬪簭絎竴嬈¤闂瓹ustomer浠g悊綾誨疄渚嬫椂錛堜緥濡傝皟鐢╟ustomer.getXXX()鎴朿ustomer.setXXX()鏂規硶錛夛紝 Hibernate浼氬垵濮嬪寲浠g悊綾誨疄渚嬶紝鍦ㄥ垵濮嬪寲榪囩▼涓墽琛宻elect璇彞錛岀湡姝d粠鏁版嵁搴撲腑鍔犺澆Customer瀵硅薄鐨勬墍鏈夋暟鎹備絾鏈変釜渚嬪錛岄偅灝辨槸褰撳簲鐢ㄧ▼搴忚闂瓹ustomer浠g悊綾誨疄渚嬬殑getId()鏂規硶鏃訛紝Hibernate涓嶄細鍒濆鍖栦唬鐞嗙被瀹炰緥錛屽洜涓哄湪鍒涘緩浠g悊綾誨疄渚嬫椂OID灝卞瓨鍦ㄤ簡錛屼笉蹇呭埌鏁版嵁搴撲腑鍘繪煡璇€?br />
鎻愮ず錛欻ibernate閲囩敤CGLIB宸ュ叿鏉ョ敓鎴愭寔涔呭寲綾葷殑浠g悊綾匯侰GLIB鏄竴涓姛鑳藉己澶х殑Java瀛楄妭鐮佺敓鎴愬伐鍏鳳紝瀹冭兘澶熷湪紼嬪簭榪愯鏃跺姩鎬佺敓鎴愭墿灞?Java綾繪垨鑰呭疄鐜癑ava鎺ュ彛鐨勪唬鐞嗙被銆傚叧浜嶤GLIB鐨勬洿澶氱煡璇嗭紝璇峰弬鑰冿細http://cglib.sourceforge.net/銆?br />
浠ヤ笅浠g爜鍏堥氳繃Session鐨刲oad()鏂規硶鍔犺澆Customer瀵硅薄錛岀劧鍚庤闂畠鐨刵ame灞炴э細

tx = session.beginTransaction();
Customer customer=(Customer)session.load(Customer.class,new Long(1));
customer.getName();
tx.commit();

鍦ㄨ繍琛宻ession.load()鏂規硶鏃禜ibernate涓嶆墽琛屼換浣晄elect璇彞錛屼粎浠呰繑鍥濩ustomer綾葷殑浠g悊綾葷殑瀹炰緥錛屽畠鐨凮ID涓?錛岃繖鏄敱load()鏂規硶鐨勭浜屼釜鍙傛暟鎸囧畾鐨勩傚綋搴旂敤紼嬪簭璋冪敤customer.getName()鏂規硶鏃訛紝Hibernate浼氬垵濮嬪寲Customer浠g悊綾誨疄渚嬶紝浠庢暟鎹簱涓姞杞紺ustomer瀵硅薄鐨勬暟鎹紝鎵ц浠ヤ笅select璇彞錛?br />
select * from CUSTOMERS where ID=1;
select * from ORDERS where CUSTOMER_ID=1;

褰?lt;class>鍏冪礌鐨刲azy灞炴т負true錛屼細褰卞搷Session鐨刲oad()鏂規硶鐨勫悇縐嶈繍琛屾椂琛屼負錛屼笅闈婦渚嬭鏄庛?br />
1錛庡鏋滃姞杞界殑Customer瀵硅薄鍦ㄦ暟鎹簱涓笉瀛樺湪錛孲ession鐨刲oad()鏂規硶涓嶄細鎶涘嚭寮傚父錛屽彧鏈夊綋榪愯customer.getName()鏂規硶鏃舵墠浼氭姏鍑轟互涓嬪紓甯革細

ERROR LazyInitializer:63 - Exception initializing proxy
net.sf.hibernate.ObjectNotFoundException: No row with the given identifier exists: 1, of class:
mypack.Customer

2錛庡鏋滃湪鏁翠釜Session鑼冨洿鍐咃紝搴旂敤紼嬪簭娌℃湁璁塊棶榪嘋ustomer瀵硅薄錛岄偅涔圕ustomer浠g悊綾葷殑瀹炰緥涓鐩翠笉浼氳鍒濆鍖栵紝Hibernate涓嶄細鎵ц浠諱綍select璇彞銆備互涓嬩唬鐮佽瘯鍥懼湪鍏抽棴Session鍚庤闂瓹ustomer娓哥瀵硅薄錛?br />
tx = session.beginTransaction();
Customer customer=(Customer)session.load(Customer.class,new Long(1));
tx.commit();
session.close();
customer.getName();

鐢變簬寮曠敤鍙橀噺customer寮曠敤鐨凜ustomer浠g悊綾葷殑瀹炰緥鍦⊿ession鑼冨洿鍐呭緇堟病鏈夎鍒濆鍖栵紝鍥犳鍦ㄦ墽琛宑ustomer.getName()鏂規硶鏃訛紝Hibernate浼氭姏鍑轟互涓嬪紓甯革細

ERROR LazyInitializer:63 - Exception initializing proxy
net.sf.hibernate.HibernateException: Could not initialize proxy - the owning Session was closed

鐢辨鍙錛孋ustomer浠g悊綾葷殑瀹炰緥鍙湁鍦ㄥ綋鍓峉ession鑼冨洿鍐呮墠鑳借鍒濆鍖栥?br />
3錛巒et.sf.hibernate.Hibernate綾葷殑initialize()闈欐佹柟娉曠敤浜庡湪Session鑼冨洿鍐呮樉寮忓垵濮嬪寲浠g悊綾誨疄渚嬶紝isInitialized()鏂規硶鐢ㄤ簬鍒ゆ柇浠g悊綾誨疄渚嬫槸鍚﹀凡緇忚鍒濆鍖栥備緥濡傦細

tx = session.beginTransaction();
Customer customer=(Customer)session.load(Customer.class,new Long(1));
if(!Hibernate.isInitialized(customer))
Hibernate.initialize(customer);
tx.commit();
session.close();
customer.getName();

浠ヤ笂浠g爜鍦⊿ession鑼冨洿鍐呴氳繃Hibernate綾葷殑initialize()鏂規硶鏄懼紡鍒濆鍖栦簡Customer浠g悊綾誨疄渚嬶紝鍥犳褰揝ession鍏抽棴鍚庯紝鍙互姝e父璁塊棶Customer娓哥瀵硅薄銆?br />
4錛庡綋搴旂敤紼嬪簭璁塊棶浠g悊綾誨疄渚嬬殑getId()鏂規硶鏃訛紝涓嶄細瑙﹀彂Hibernate鍒濆鍖栦唬鐞嗙被瀹炰緥鐨勮涓猴紝渚嬪錛?br />
tx = session.beginTransaction();
Customer customer=(Customer)session.load(Customer.class,new Long(1));
customer.getId();
tx.commit();
session.close();
customer.getName();

褰撳簲鐢ㄧ▼搴忚闂甤ustomer.getId()鏂規硶鏃訛紝璇ユ柟娉曠洿鎺ヨ繑鍥濩ustomer浠g悊綾誨疄渚嬬殑OID鍊鹼紝鏃犻渶鏌ヨ鏁版嵁搴撱傜敱浜庡紩鐢ㄥ彉閲?customer濮嬬粓寮曠敤鐨勬槸娌℃湁琚垵濮嬪寲鐨凜ustomer浠g悊綾誨疄渚嬶紝鍥犳褰揝ession鍏抽棴鍚庡啀鎵цcustomer.getName()鏂規硶錛?Hibernate浼氭姏鍑轟互涓嬪紓甯革細

ERROR LazyInitializer:63 - Exception initializing proxy
net.sf.hibernate.HibernateException: Could not initialize proxy - the owning Session was closed


瑙e喅鏂規硶錛?br />
鐢變簬hibernate閲囩敤浜唋azy=true,榪欐牱褰撲綘鐢╤ibernate鏌ヨ鏃?榪斿洖瀹為檯涓哄埄鐢╟glib澧炲己鐨勪唬鐞嗙被,浣嗗叾騫舵病鏈夊疄闄呭~鍏?褰撲綘鍦ㄥ墠绔?鍒╃敤瀹冩潵鍙栧?getXXX)鏃?榪欐椂Hibernate鎵嶄細鍒版暟鎹簱鎵ц鏌ヨ,騫跺~鍏呭璞?浣嗘鏃跺鏋滃拰榪欎釜浠g悊綾葷浉鍏崇殑session宸插叧闂帀,灝變細浜х敓縐嶉敊璇?
鍦ㄥ仛涓瀵瑰鏃訛紝鏈夋椂浼氬嚭鐜?could not initialize proxy - clothe owning Session was sed,榪欎釜濂藉儚鏄痟ibernate鐨勭紦瀛橀棶棰?闂瑙e喅:闇瑕佸湪<many-to-one>閲岃緗甽azy="false". 浣嗘湁鍙兘浼氬紩鍙戝彟涓涓紓甯稿彨

failed to lazily initialize a collection of role: XXXXXXXX, no session or session was closed

姝ゅ紓甯歌В鍐蟲柟妗堣瀵熺湅鏈漢鍗氬錛坔ttp://hi.baidu.com/kekemao1錛夌殑Hibernate寮傚父涓殑銆奻ailed to lazily initialize a collection of role寮傚父銆?br />
?
瑙e喅鏂規硶:鍦╳eb.xml涓姞鍏?br /><filter>
    <filter-name>hibernateFilter</filter-name>
    <filter-class>
     org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
    </filter-class>
</filter
<filter-mapping>
    <filter-name>hibernateFilter</filter-name>
    <url-pattern>*.do</url-pattern>
</filter-mapping>
灝卞彲浠ヤ簡;

鍙傝冧簡:
Hibernate涓庡歡榪熷姞杞斤細

Hibernate瀵硅薄鍏崇郴鏄犲皠鎻愪緵寤惰繜鐨勪笌闈炲歡榪熺殑瀵硅薄鍒濆鍖栥傞潪寤惰繜鍔犺澆鍦ㄨ鍙栦竴涓璞$殑鏃跺欎細灝嗕笌榪欎釜瀵硅薄鎵鏈夌浉鍏崇殑鍏朵粬瀵硅薄涓璧瘋鍙栧嚭鏉ャ傝繖鏈夋椂浼氬鑷存垚鐧劇殑錛堝鏋滀笉鏄垚鍗冪殑璇濓級select璇彞鍦ㄨ鍙栧璞$殑鏃跺欐墽琛屻傝繖涓棶棰樻湁鏃跺嚭鐜板湪浣跨敤鍙屽悜鍏崇郴鐨勬椂鍊欙紝緇忓父浼氬鑷存暣涓暟鎹簱閮藉湪鍒濆鍖栫殑闃舵琚鍑烘潵浜嗐傚綋鐒訛紝浣犲彲浠ヤ笉鍘屽叾鐑﹀湴媯鏌ユ瘡涓涓璞′笌鍏朵粬瀵硅薄鐨勫叧緋伙紝騫舵妸閭d簺鏈鏄傝吹鐨勫垹闄わ紝浣嗘槸鍒版渶鍚庯紝鎴戜滑鍙兘浼氬洜姝ゅけ鍘諱簡鏈兂鍦∣RM宸ュ叿涓幏寰楃殑渚垮埄銆?br />

涓涓槑鏄劇殑瑙e喅鏂規硶鏄嬌鐢℉ibernate鎻愪緵鐨勫歡榪熷姞杞芥満鍒躲傝繖縐嶅垵濮嬪寲絳栫暐鍙湪涓涓璞¤皟鐢ㄥ畠鐨勪竴瀵瑰鎴栧瀵瑰鍏崇郴鏃舵墠灝嗗叧緋誨璞¤鍙栧嚭鏉ャ傝繖涓繃紼嬪寮鍙戣呮潵璇存槸閫忔槑鐨勶紝鑰屼笖鍙繘琛屼簡寰堝皯鐨勬暟鎹簱鎿嶄綔璇鋒眰錛屽洜姝や細寰楀埌姣旇緝鏄庢樉鐨勬ц兘鎻愬崌銆傝繖欏規妧鏈殑涓涓己闄鋒槸寤惰繜鍔犺澆鎶鏈姹備竴涓狧ibernate浼氳瘽瑕佸湪瀵硅薄浣跨敤鐨勬椂鍊欎竴鐩村紑鐫銆傝繖浼氭垚涓洪氳繃浣跨敤DAO妯″紡灝嗘寔涔呭眰鎶借薄鍑烘潵鏃剁殑涓涓富瑕侀棶棰樸備負浜嗗皢鎸佷箙鍖栨満鍒跺畬鍏ㄥ湴鎶借薄鍑烘潵錛屾墍鏈夌殑鏁版嵁搴撻昏緫錛屽寘鎷墦寮鎴栧叧闂細璇濓紝閮戒笉鑳藉湪搴旂敤灞傚嚭鐜般傛渶甯歌鐨勬槸錛屼竴浜涘疄鐜頒簡綆鍗曟帴鍙g殑DAO瀹炵幇綾誨皢鏁版嵁搴撻昏緫瀹屽叏灝佽璧鋒潵浜嗐備竴縐嶅揩閫熶絾鏄鎷欑殑瑙e喅鏂規硶鏄斁寮僁AO妯″紡錛屽皢鏁版嵁搴撹繛鎺ラ昏緫鍔犲埌搴旂敤灞備腑鏉ャ傝繖鍙兘瀵逛竴浜涘皬鐨勫簲鐢ㄧ▼搴忔湁鏁堬紝浣嗘槸鍦ㄥぇ鐨勭郴緇熶腑錛岃繖鏄竴涓弗閲嶇殑璁捐緙洪櫡錛屽Θ紕嶄簡緋葷粺鐨勫彲鎵╁睍鎬с?br />
鍦╓eb灞傝繘琛屽歡榪熷姞杞?br />
騫歌繍鐨勬槸錛孲pring妗嗘灦涓篐ibernate寤惰繜鍔犺澆涓嶥AO妯″紡鐨勬暣鍚堟彁渚涗簡涓縐嶆柟渚跨殑瑙e喅鏂規硶銆傚閭d簺涓嶇啛鎮塖pring涓嶩ibernate闆嗘垚浣跨敤鐨勪漢錛屾垜涓嶄細鍦ㄨ繖閲岃璁鴻繃澶氱殑緇嗚妭錛屼絾鏄垜寤鴻浣犲幓浜嗚ВHibernate涓嶴pring闆嗘垚鐨勬暟鎹闂備互涓涓猈eb搴旂敤涓轟緥錛孲pring鎻愪緵浜哋penSessionInViewFilter鍜孫penSessionInViewInterceptor銆傛垜浠彲浠ラ殢鎰忛夋嫨涓涓被鏉ュ疄鐜扮浉鍚岀殑鍔熻兘銆備袱縐嶆柟娉曞敮涓鐨勪笉鍚屽氨鍦ㄤ簬interceptor鍦⊿pring瀹瑰櫒涓繍琛屽茍琚厤緗湪web搴旂敤鐨勪笂涓嬫枃涓紝鑰孎ilter鍦⊿pring涔嬪墠榪愯騫惰閰嶇疆鍦╳eb.xml涓備笉綆$敤鍝釜錛屼粬浠兘鍦ㄨ姹傚皢褰撳墠浼氳瘽涓庡綋鍓嶏紙鏁版嵁搴擄級綰跨▼緇戝畾鏃舵墦寮Hibernate浼氳瘽銆備竴鏃﹀凡緇戝畾鍒扮嚎紼嬶紝榪欎釜鎵撳紑浜嗙殑Hibernate浼氳瘽鍙互鍦―AO瀹炵幇綾諱腑閫忔槑鍦頒嬌鐢ㄣ傝繖涓細璇濅細涓哄歡榪熷姞杞芥暟鎹簱涓煎璞$殑瑙嗗浘淇濇寔鎵撳紑鐘舵併備竴鏃﹁繖涓昏緫瑙嗗浘瀹屾垚浜嗭紝Hibernate浼氳瘽浼氬湪Filter鐨刣oFilter鏂規硶鎴栬匢nterceptor鐨刾ostHandle鏂規硶涓鍏抽棴銆備笅闈㈡槸姣忎釜緇勪歡鐨勯厤緗ず渚嬶細



Interceptor鐨勯厤緗?


<beans>
<bean id="urlMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="interceptors">
<list>
<ref bean="openSessionInViewInterceptor"/>
</list>
</property>
<property name="mappings">

</bean>

<bean name="openSessionInViewInterceptor"
class="org.springframework.orm.hibernate.support.OpenSessionInViewInterceptor">
<property name="sessionFactory"><ref bean="sessionFactory"/></property>
</bean>
</beans>

Filter鐨勯厤緗?br />

<web-app>

<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate.support.OpenSessionInViewFilter
</filter-class>
</filter>

<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>*. spring </url-pattern>
</filter-mapping>

</web-app>


瀹炵幇Hibernate鐨凞ao鎺ュ彛鏉ヤ嬌鐢ㄦ墦寮鐨勪細璇濇槸寰堝鏄撶殑銆備簨瀹炰笂錛屽鏋滀綘宸茬粡浣跨敤浜哠pring妗嗘灦鏉ュ疄鐜頒綘鐨凥ibernate Dao,寰堝彲鑳戒綘涓嶉渶瑕佹敼鍙樹換浣曚笢瑗褲傛柟渚跨殑HibernateTemplate鍏敤緇勪歡浣胯闂暟鎹簱鍙樻垚灝忚彍涓紕燂紝鑰孌AO鎺ュ彛鍙湁閫氳繃榪欎釜緇勪歡鎵嶅彲浠ヨ闂埌鏁版嵁搴撱備笅闈㈡槸涓涓ず渚嬬殑DAO錛?br />

public class HibernateProductDAO extends HibernateDaoSupport implements ProductDAO {

public Product getProduct(Integer productId) {
return (Product)getHibernateTemplate().load(Product.class, productId);
}

public Integer saveProduct(Product product) {
return (Integer) getHibernateTemplate().save(product);
}

public void updateProduct(Product product) {
getHibernateTemplate().update(product);
}
}


鍦ㄤ笟鍔¢昏緫灞備腑浣跨敤寤惰繜鍔犺澆

鍗充嬌鍦ㄨ鍥懼闈紝Spring妗嗘灦涔熼氳繃浣跨敤AOP 鎷︽埅鍣?HibernateInterceptor鏉ヤ嬌寰楀歡榪熷姞杞藉彉寰楀緢瀹規槗瀹炵幇銆傝繖涓狧ibernate 鎷︽埅鍣ㄩ忔槑鍦板皢璋冪敤閰嶇疆鍦⊿pring搴旂敤紼嬪簭涓婁笅鏂囦腑鐨勪笟鍔″璞′腑鏂規硶鐨勮姹傛嫤鎴笅鏉ワ紝鍦ㄨ皟鐢ㄦ柟娉曚箣鍓嶆墦寮涓涓狧ibernate浼氳瘽錛岀劧鍚庡湪鏂規硶鎵ц瀹屼箣鍚庡皢浼氳瘽鍏抽棴銆傝鎴戜滑鏉ョ湅涓涓畝鍗曠殑渚嬪瓙錛屽亣璁炬垜浠湁涓涓帴鍙ussinessObject錛?br />

public     interface    BusinessObject     {
public     void    doSomethingThatInvolvesDaos();
}
綾籅usinessObjectImpl瀹炵幇浜咮usinessObject鎺ュ彛:

public     class    BusinessObjectImpl    implements    BusinessObject     {
public     void    doSomethingThatInvolvesDaos()     {
//    lots of logic that calls
//    DAO classes Which access
//    data objects lazily 





閫氳繃鍦⊿pring搴旂敤紼嬪簭涓婁笅鏂囦腑鐨勪竴浜涢厤緗紝鎴戜滑鍙互璁╁皢璋冪敤BusinessObject鐨勬柟娉曟嫤鎴笅鏉ワ紝鍐嶄護瀹冪殑鏂規硶鏀寔寤惰繜鍔犺澆銆傜湅鐪嬩笅闈㈢殑涓涓▼搴忕墖孌碉細



<beans>
<bean id="hibernateInterceptor" class="org.springframework.orm.hibernate.HibernateInterceptor">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<bean id="businessObjectTarget" class="com.acompany.BusinessObjectImpl">
<property name="someDAO"><ref bean="someDAO"/></property>
</bean>
<bean id="businessObject" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="target"><ref bean="businessObjectTarget"/></property>
<property name="proxyInterfaces">
<value>com.acompany.BusinessObject</value>
</property>
<property name="interceptorNames">
<list>
<value>hibernateInterceptor</value>
</list>
</property>
</bean>
</beans>

褰揵usinessObject琚皟鐢ㄧ殑鏃跺欙紝HibernateInterceptor鎵撳紑涓涓狧ibernate浼氳瘽錛屽茍灝嗚皟鐢ㄨ姹備紶閫掔粰BusinessObjectImpl瀵硅薄銆傚綋BusinessObjectImpl鎵ц瀹屾垚鍚庯紝HibernateInterceptor閫忔槑鍦板叧闂簡浼氳瘽銆傚簲鐢ㄥ眰鐨勪唬鐮佷笉鐢ㄤ簡瑙d換浣曟寔涔呭眰閫昏緫錛岃繕鏄疄鐜頒簡寤惰繜鍔犺澆銆?br />

鍦ㄥ崟鍏冩祴璇曚腑嫻嬭瘯寤惰繜鍔犺澆

鏈鍚庯紝鎴戜滑闇瑕佺敤J-Unit鏉ユ祴璇曟垜浠殑寤惰繜鍔犺澆紼嬪簭銆傛垜浠彲浠ヨ交鏄撳湴閫氳繃閲嶅啓TestCase綾諱腑鐨剆etUp鍜宼earDown鏂規硶鏉ュ疄鐜拌繖涓姹傘傛垜姣旇緝鍠滄鐢ㄨ繖涓柟渚跨殑鎶借薄綾諱綔涓烘垜鎵鏈夋祴璇曠被鐨勫熀綾匯?br />

public abstract class MyLazyTestCase extends TestCase {

private SessionFactory sessionFactory;
private Session session;

public void setUp() throws Exception {
super.setUp();
SessionFactory sessionFactory = (SessionFactory) getBean("sessionFactory");
session = SessionFactoryUtils.getSession(sessionFactory, true);
Session s = sessionFactory.openSession();
TransactionSynchronizationManager.bindResource(sessionFactory, new SessionHolder(s));

}

protected Object getBean(String beanName) {
//Code to get objects from Spring application context
}

public void tearDown() throws Exception {
super.tearDown();
SessionHolder holder = (SessionHolder) TransactionSynchronizationManager.getResource(sessionFactory);
Session s = holder.getSession();
s.flush();
TransactionSynchronizationManager.unbindResource(sessionFactory);
SessionFactoryUtils.closeSessionIfNecessary(s, sessionFactory);
}

--------------------------------------------------------------
--------------------------------------------------------------

Java浠g爜 澶嶅埗浠g爜 鏀惰棌浠g爜
  1. <?xml version="1.0"?> 
  2. <!DOCTYPE hibernate-mapping PUBLIC 
  3.     "-//Hibernate/Hibernate Mapping DTD//EN" 
  4.     "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
  5. <hibernate-mapping package="com.isoftstone.lms.model"
  6.     <class name="Order" table="sv_order"
  7.         <id name="orderId" column="sv_order_id" type="string"
  8.             <generator class="sequence"
  9.                 <param name="sequence">SEQ_ORDERID</param> 
  10.             </generator> 
  11.         </id> 
  12.          
  13.         many-to-one name="style" column="sv_style_id" lazy="false" /> 
  14.         <many-to-one name="state" column="sv_state_id"  lazy="false"/> 
  15.         <many-to-one name="client" column="sv_client_id" lazy="false" /> 
  16.         <many-to-one name="baseOrder" column="sv_order_baseid"  lazy="false"/> 
  17.         <property name="orderNo" column="sv_order_orderno" type="long" /> 
  18.         <property name="createDate" column="sv_order_createdate" type="date" /> 
  19.         <property name="sendDate" column="sv_order_senddate" type="string" /> 
  20.         <property name="sendAddress" column="sv_order_sendAddress" type="string" /> 
  21.         <property name="accepter" column="sv_order_accepter" type="string" /> 
  22.         <property name="postNo" column="sv_order_postNo" type="string" /> 
  23.         <property name="phone" column="sv_order_phone" type="string" /> 
  24.         <property name="totalMoney" column="sv_order_totalmoney" type="double" /> 
  25.         <property name="isinvoice" column="sv_order_isinvoice" type="int" /> 
  26.         <property name="remark" column="sv_order_remark" type="string" /> 
  27.          
  28.         <set name="orderGoodss" inverse="true" lazy="extra" cascade="all"
  29.             <key column="sv_order_id"/> 
  30.             <one-to-many class="OrderGoods"/> 
  31.         </set> 
  32.     </class
  33. </hibernate-mapping> 

[color=red]
Java浠g爜 澶嶅埗浠g爜 鏀惰棌浠g爜
  1. <many-to-one name="style" column="sv_style_id" lazy="false" /> 
  2. <many-to-one name="state" column="sv_state_id"  lazy="false"/> 
  3. <many-to-one name="client" column="sv_client_id" lazy="false" /> 
  4. <many-to-one name="baseOrder" column="sv_order_baseid"  lazy="false"/> 
[/color]

zx_bing 2012-07-27 14:13 鍙戣〃璇勮
]]>
Hibernate鍩轟簬澶栭敭鏌ヨ http://www.tkk7.com/zxb90study/archive/2012/07/27/384152.htmlzx_bingzx_bingFri, 27 Jul 2012 06:11:00 GMThttp://www.tkk7.com/zxb90study/archive/2012/07/27/384152.html
Java浠g爜 澶嶅埗浠g爜 鏀惰棌浠g爜
  1. public List<Order> getClientOrder(String clientId) { 
  2.  
  3.         Session session = null
  4.         List<Order> orderList = null
  5.         try
  6.             session = HibernateUtil.getSession(); 
  7.             session.beginTransaction(); 
  8.             orderList = session.createQuery("from Order o where o.client.clientId = ?"
  9.                                 .setParameter(1,clientId) 
  10.                                 .list(); 
  11.             session.getTransaction().commit(); 
  12.         } catch (Exception e) { 
  13.             e.printStackTrace(); 
  14.             session.getTransaction().rollback(); 
  15.         } finally
  16.             HibernateUtil.closeSession(session); 
  17.         } 
  18.  
  19.         return orderList; 
  20.     } 


zx_bing 2012-07-27 14:11 鍙戣〃璇勮
]]>
hibernate 澶氭潯浠舵煡璇?http://www.tkk7.com/zxb90study/archive/2012/07/27/384151.htmlzx_bingzx_bingFri, 27 Jul 2012 06:08:00 GMThttp://www.tkk7.com/zxb90study/archive/2012/07/27/384151.html
Java浠g爜 澶嶅埗浠g爜 鏀惰棌浠g爜
  1. public List<Client> searchClients(String clientName, String tel, 
  2.             String identityNo) { 
  3.  
  4.         StringBuffer sb = new StringBuffer("from Client c where 1=1"); 
  5.          
  6.         if(clientName != null && !"".equals(clientName) ){ 
  7.             sb.append("and c.name like '%" + clientName + "%'"); 
  8.         } 
  9.         if(tel != null && !"".equals(tel)){ 
  10.             sb.append("and c.tel = " + tel); 
  11.         } 
  12.         if(identityNo != null && !"".equals(identityNo)){ 
  13.             sb.append("and c.identityNo = " + identityNo); 
  14.         } 
  15.         return clientDao.searchClients(sb.toString()); 


zx_bing 2012-07-27 14:08 鍙戣〃璇勮
]]>
Hibernate query 瀛︿範絎旇 http://www.tkk7.com/zxb90study/archive/2012/07/27/384143.htmlzx_bingzx_bingFri, 27 Jul 2012 05:51:00 GMThttp://www.tkk7.com/zxb90study/archive/2012/07/27/384143.html闃呰鍏ㄦ枃

zx_bing 2012-07-27 13:51 鍙戣〃璇勮
]]>
Hibernate鐨刧enerator灞炴?http://www.tkk7.com/zxb90study/archive/2012/07/26/384007.htmlzx_bingzx_bingWed, 25 Jul 2012 23:59:00 GMThttp://www.tkk7.com/zxb90study/archive/2012/07/26/384007.html闃呰鍏ㄦ枃

zx_bing 2012-07-26 07:59 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 亚洲一区精品中文字幕| 亚洲一区爱区精品无码| 亚洲精品福利网站| 免费一级毛片无毒不卡| 亚洲一区视频在线播放| 人妻巨大乳hd免费看| 亚洲日本在线观看视频| 一级毛片aa高清免费观看| 亚洲成av人片一区二区三区| 色屁屁www影院免费观看视频| 日本高清色本免费现在观看| 亚洲欧洲专线一区| 四虎永久在线精品视频免费观看| 亚洲AV日韩AV永久无码色欲| 国产免费人视频在线观看免费| 国产亚洲精品第一综合| yy6080亚洲一级理论| 在线观看片免费人成视频播放| 国产AV无码专区亚洲AV毛网站| 无码国产精品一区二区免费vr | 国产情侣激情在线视频免费看| 亚洲国产精品久久久久| 亚洲成人免费网站| 亚洲女人初试黑人巨高清| A在线观看免费网站大全| 亚洲精品无码少妇30P| 日本不卡视频免费| 猫咪免费人成网站在线观看入口| 国产亚洲精品免费视频播放| 91视频免费网站| 亚洲性无码av在线| 中字幕视频在线永久在线观看免费| 亚洲熟妇无码八V在线播放| 波多野结衣视频在线免费观看| 一个人看的在线免费视频| 久久久影院亚洲精品| 69成人免费视频无码专区| 亚洲精品国产高清在线观看| 亚洲日韩在线观看| 亚洲视频免费播放| 曰批免费视频播放免费|