国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

Hibernate持久化技術(shù)中多對(duì)多關(guān)系應(yīng)用

2019-11-18 12:57:53
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

Hibenate作為一種java對(duì)象持久化技術(shù),在很多大型的多層體系構(gòu)架中得到應(yīng)用,比如在開(kāi)發(fā)一套電子商務(wù)系統(tǒng)可以以J2EE作為體系構(gòu)架,StrUCts作為java Web應(yīng)用框架,以Hibenate實(shí)現(xiàn)對(duì)象持久化任務(wù),以EJB或者普通的javabean實(shí)現(xiàn)業(yè)務(wù)邏輯,其實(shí)現(xiàn)過(guò)程的復(fù)雜度可想而知,下面收集一些在Hibenate中多對(duì)多關(guān)系中應(yīng)用技巧給大家分享

 

1.cascade="..."?

 

cascade屬性并不是多對(duì)多關(guān)系一定要用的,有了它只是讓我們?cè)诓迦牖騽h除對(duì)像時(shí)更方便一些,只要在cascade的源頭上插入或是刪除,所有cascade的關(guān)系就會(huì)被自己動(dòng)的插入或是刪除。便是為了能正確的cascade,unsaved-value是個(gè)很重要的屬性。

 

Hibernate通過(guò)這個(gè)屬性來(lái)判定一個(gè)對(duì)象應(yīng)該save還是update,假如這個(gè)對(duì)象的id是unsaved-value的話,那說(shuō)明這個(gè)對(duì)象不是persistence object要save(insert);假如id是非unsaved-value的話,那說(shuō)明這個(gè)對(duì)象是persistence object(數(shù)據(jù)庫(kù)中已存在),只要update就行了。saveOrUpdate方法用的也是這個(gè)機(jī)制。

 

2.inverse="ture"?

 

inverse屬性默認(rèn)是false的,就是說(shuō)關(guān)系的兩端都來(lái)維護(hù)關(guān)系。這個(gè)意思就是說(shuō),如有一個(gè)Student, Teacher和TeacherStudent表,Student和Teacher是多對(duì)多對(duì)多關(guān)系,這個(gè)關(guān)系由TeacherStudent這個(gè)表來(lái)表現(xiàn)。那么什么時(shí)候插入或刪除TeacherStudent表中的記錄來(lái)維護(hù)關(guān)系呢?在用hibernate時(shí),我們不會(huì)顯示的對(duì)TeacherStudent表做操作。

 

對(duì)TeacherStudent的操作是hibernate幫我們做的。hibernate就是看hbm文件中指定的是"誰(shuí)"維護(hù)關(guān)系,那個(gè)在插入或刪除"誰(shuí)"時(shí),就會(huì)處發(fā)對(duì)關(guān)系表的操作。前提是"誰(shuí)"這個(gè)對(duì)象已經(jīng)知道這個(gè)關(guān)系了,就是說(shuō)關(guān)系另一頭的對(duì)象已經(jīng)set或是add到"誰(shuí)"這個(gè)對(duì)象里來(lái)了。前面說(shuō)過(guò)inverse默認(rèn)是false,就是關(guān)系的兩端都維護(hù)關(guān)系,對(duì)其中任一個(gè)操作都會(huì)處發(fā)對(duì)表系表的操作。當(dāng)在關(guān)系的一頭,如Student中的bag或set中用了inverse="true"時(shí),那就代表關(guān)系是由另一關(guān)維護(hù)的(Teacher)。就是說(shuō)當(dāng)這插入Student時(shí),不會(huì)操作TeacherStudent表,即使Student已經(jīng)知道了關(guān)系。只有當(dāng)Teacher插入或刪除時(shí)才會(huì)處發(fā)對(duì)關(guān)系表的操作。



發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 涿州市| 洪湖市| 揭西县| 顺义区| 湄潭县| 万荣县| 军事| 红安县| 金坛市| 长葛市| 红桥区| 娄烦县| 上高县| 江门市| 东明县| 栾川县| 昔阳县| 岚皋县| 炎陵县| 仙居县| 阜平县| 和平县| 阜城县| 濮阳县| 行唐县| 瑞昌市| 台东市| 昌邑市| 石棉县| 塘沽区| 廉江市| 余干县| 东宁县| 玉山县| 延边| 得荣县| 积石山| 南京市| 应城市| 石嘴山市| 盐源县|