Hibernate更改部分字段hibernateupdate更改想更改的字段JavaHibernate

Hibernate更改部分字段hibernateupdate更改想更改的字段JavaHibernate

ID:40554631

大?。?9.00 KB

頁(yè)數(shù):4頁(yè)

時(shí)間:2019-08-04

Hibernate更改部分字段hibernateupdate更改想更改的字段JavaHibernate_第1頁(yè)
Hibernate更改部分字段hibernateupdate更改想更改的字段JavaHibernate_第2頁(yè)
Hibernate更改部分字段hibernateupdate更改想更改的字段JavaHibernate_第3頁(yè)
Hibernate更改部分字段hibernateupdate更改想更改的字段JavaHibernate_第4頁(yè)
資源描述:

《Hibernate更改部分字段hibernateupdate更改想更改的字段JavaHibernate》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、Hibernate中如果直接使用?Session.update(Objecto);?會(huì)把這個(gè)表中的所有字段更新一遍。?比如:123456789101112publicclassTeacherTest{@Testpublicvoidupdate(){Sessionsession=HibernateUitl.getSessionFactory().getCurrentSession();session.beginTransaction();Teachert=(Teacher)session.get(Teacher.class,3);t

2、.setName("yangtb2");session.update(t);?session.getTransaction().commit();}}?Hibernate執(zhí)行的SQL語(yǔ)句:?12345678910Hibernate:UPDATETeacherSETage=?,birthday=?,name=?,title=?WHEREid=??我們只更改了Name屬性,而Hibernate的sql語(yǔ)句把所有字段都更改了一次。?這樣要是我們有字段是文本類型,這個(gè)類型存儲(chǔ)的內(nèi)容是幾千,幾萬(wàn)字,這樣效率會(huì)很低。那么怎么只更改我們更新的字

3、段呢??有三中方法:?1.XML中設(shè)置property標(biāo)簽update=“false”,如下:我們?cè)O(shè)置age這個(gè)屬性在更改中不做更改???在Annotation中?在屬性GET方法上加上@Column(updatable=false)1234@Column(updatable=false)publicintgetAge(){returnage;}??我們?cè)趫?zhí)行Update方法會(huì)發(fā)現(xiàn),age屬性不會(huì)被更改?123456789Hibernate:

4、UPDATETeacherSETbirthday=?,name=?,title=?WHEREid=??缺點(diǎn):不靈活····?2.第2種方法··使用XML中的dynamic-update=”true”?<classname="com.sccin.entity.Student"table="student"dynamic-update="true">??OK,這樣就不需要在字段上設(shè)置了。但這樣的方法在Annotation中沒(méi)有?3.第三種方式:使用HQL語(yǔ)句(靈活,方便)?使用HQL語(yǔ)句修改數(shù)據(jù)??1234567publi

5、cvoidupdate(){Sessionsession=HibernateUitl.getSessionFactory().getCurrentSession();session.beginTransaction();Queryquery=session.createQuery("updateTeachertsett.name='yangtianb'whereid=3");query.executeUpdate();session.getTransaction().commit();}?Hibernate執(zhí)行的SQL語(yǔ)句:?Hi

6、bernate:updateTeachersetname='yangtianb'whereid=3?這樣就只更新了我們更新的字段······

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。