




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
如何解決hibernate自動更新實體類的問題
如何解決hibernate自動更新實體類的問題
示例:
Java代碼僉
1.GrabOrdergrabOrder=(GrabOrder)this.grabOrderDao.getCurrentSess
ion().get(GrabOrder.class,grabOrderid);
2.grabOrder.setNickname(TimeHWUtil.getCurrentDateTime());
上述代碼會執(zhí)行兩條SQL:
查詢和更新
為什么會更新呢?我明明沒有調(diào)用DAO的update方法?。。。?/p>
但是這里我調(diào)用了實體類的setter方法,
hibernate有一個機(jī)制Hibernatedirty-checks,會同步session緩存和數(shù)據(jù)庫的數(shù)
據(jù)
如何解決自動更新的問題:
方案一:把實體類由持久態(tài)變?yōu)槊摴軕B(tài)(游離態(tài))
Java代碼僉
1.this.grabOrderDao.getCurrentSession().evict(grabOrder);
缺點懶加載的對象無法加載,因為此時session相當(dāng)千close了
而且會報錯org.hibernate.LazylnitializationException:couldnotinitializeproxy-no
Session
報錯的代碼:
Java代碼僉
1.this.grabOrderDao.getCurrentSession().clear();
2.System.out.println(grabOrder.getHouseinfo().getHouseOwner
().getid());
更好的操作步驟.
(1)先把要訪問的屬性加載出來,可以通過提前使用,或者Hibernate.initialize(dept)
(2)再調(diào)用evict方法或clear方法
什么叫提前仗用呢?即提前調(diào)用getter方法
正確
Java代碼僉
1.System.out.println(grabOrder.getHouselnfo().getHouseOwner().getld
());
2.this.grabOrderDao.getCurrentSession().clear();
3.System.out.println(grabOrder.getHouseinfo().getHouseOwner
().getid());
方案二:把實體類變?yōu)橹蛔x
Java代碼僉
1.this.grabOrderDao.setReadOnly(grabOrder,readonly);
但是這招不是萬靈藥,有例外:
Unidirectionalone-to-manyandmany-to-many
Hibernatetreatsunidirectionalone-to-manyandmany-to-many
associationsownedbyaread-onlyentitythesameaswhen
ownedbyanentitythatisnotread-only.
修改單向的對多和多對多的成員變盤時,依然會觸發(fā)hibernate的自動更新.
有什么萬全之策呢?
(a)采用讀寫分離把操作放在只讀的數(shù)據(jù)庫連接中
(b)采用只讀事務(wù)
當(dāng)方法名是updateTestLa芍時會自動更新
但是我修改方法名為9etTestL釭y時,就不會自動更新了
為什么呢?看看spring事務(wù)配置
個`VIII?IIV口3匕·U丿上口y上-:1vu,uuv·,,個·',`\??II尸ll=^=`.......""\ti....,.....`
*com.hhouse.ujiayigou.service.,*·*(..))11execution(public
*com.house.ujiayigou.timer.pojo.*·*(..))11execution(public
*oa.dao.responsibility.·*·*(..))IIexecu扛on(public
*oa.web.controller.responsibility..*·*(..))11execu扛on(public
*mon.dao.generic..*,*(,,))"/>
<aop:advisorpointcut-ref="bussinessService"advice-ref="txAdvice"/>
</aop:config>I
<aop:aspectj..:'autoproxyproxy-target-class="true"/>
<tx:adviceid="txAdvice"transaction-manager="txManager">
<tx:attributes>
<tx:methodnam+“qet*”lead-only=''true”/>只讀
<tx:methodname="query*"read-only="true"/>
<tx:methodname="build*"read-only="true"/>
<tx:methodname="count*"read-only="true"/>
<tx:methodname="find*"read-only="true"/>
<tx:methodname="test*"read-only="true"/>
<tx:methodname="is*"read-only="true"/>
<tx:methodname="show*"read-only="true"/>
<tx:methodname="convert*"read-only="true"/>
<tx:methodname="delete*"propagation="REQUIRED"/>
<tx:method
::::::比$~:i::::::工f*;$$;:!$芷I1五茹霖甘忱:/>
<tx:methodname="add*"propagation="REQUIRED"/>
-.十V?...^+K^,,...-...^一”^,,;+心”.....^...-“~+;^...一”0cn11T0cn11,....
只讀的對象不保險,所以我們使用只讀的事務(wù)或只讀的數(shù)據(jù)庫連接.
如何解決json序列化時,自動加載lazy對象導(dǎo)致對象多層嵌套的問題?
使用Sill\l\pleBea八Pr-ope叨Filter過濾不需要的字段
Java代碼僉
1./***
2.
3.*@paramxpath:參考www.rodl/kunlunsoft/util/objectxpa
th/ObjectXpath.java
4.*@return
5.*/
6.publicStringtoJson(Stringcolumn,String...xpath){
7.if(this.result==null){//modifiedbyhuangweii@2015-0
8-17
8.System.out.println("this.resultisnull");
9.}else{
10.if(this.result!=false){
11.//this.errorMessage=null;
12.this.setErrorMessage(null);
13.}
14.
15.}
16.if(ValueWidget.isNullOrEmpty(xpath)
17.11ValueWidget.isNullOrEmpty(xpath[0])){
18.returnHWJacksonUtils.getJsonP(this);
19.}
20.
21.//finalObjectXpathoxp=newObjectXpath(www.482223.co
m);
22.intlength=xpath.length;
23.IIfinalObject[]filterObjects=newObject[length];
24.ListfilterObjList=newArraylist();
25.for(inti=0;i<length;i++){
26.Objecto=XPathPcess(this.getValue(),xpath
[i]);
27.if(oinstanceofList){
28.filterObjList.addAll((List)o);
29.}else{
30.filterObjList.add(o);
}
31.
32.//filterObjects[i]=o;
33.}
34.finalObject[]filterObjects=filterObjlist.toArray();
35.returnHWJacksonUtils.getJsonP(this,newDefaultJsonFilte
rDecide(){
36.@Override
37.publicbooleanisFilteColumn(Objectpo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 河南省南陽市內(nèi)鄉(xiāng)縣第一教育集團(tuán)2024-2025學(xué)年八年級上學(xué)期期末物理試題(原卷版+解析版)
- 江西省吉安市2024-2025學(xué)年高一上學(xué)期期末教學(xué)質(zhì)量檢測歷史試題(原卷版+解析版)
- 年脫貧工作計劃
- 《商務(wù)英語筆譯》課件-第九模塊
- 某部年度副食品供應(yīng)采購 投標(biāo)方案(技術(shù)方案)
- 裝修工程居間合同樣本
- 三農(nóng)領(lǐng)域政策解讀與解讀實務(wù)指南
- 生態(tài)旅游開發(fā)
- 廢水處理工程可行性研究報告
- 2025年度搬家服務(wù)車輛買賣及培訓(xùn)服務(wù)合同
- 員工守則十條
- 【中國民航安檢的發(fā)展現(xiàn)狀及發(fā)展建議4000字(論文)】
- 房地產(chǎn)市場調(diào)研表格
- Audio-Jack-連接器設(shè)計經(jīng)驗
- S7-200SMARTPLC應(yīng)用技術(shù)PPT完整全套教學(xué)課件
- 硬筆控筆訓(xùn)練字帖
- 國家自然科學(xué)基金經(jīng)費預(yù)算表模板
- 華能電力定員標(biāo)準(zhǔn)
- 儲能技術(shù)-氫儲能
- YY/T 1712-2021采用機(jī)器人技術(shù)的輔助手術(shù)設(shè)備和輔助手術(shù)系統(tǒng)
- JJF 1101-2019環(huán)境試驗設(shè)備溫度、濕度參數(shù)校準(zhǔn)規(guī)范
評論
0/150
提交評論