風(fēng)雨無(wú)阻

          實(shí)例:設(shè)備,設(shè)備類型,設(shè)備端口

          有以下三個(gè)對(duì)象:
          US設(shè)備對(duì)象:USDevie
          US設(shè)備類型對(duì)象:USDeviceModle
          US設(shè)備端口對(duì)象:USDevicePort
          class USDevice
          {
          ....
          // US設(shè)備類型
          USDeviceModel model;

          // US設(shè)備端口對(duì)象集合
          Set<USDevicePort> devicePortSet = new HashSet();

          }

          /**
          US設(shè)備類型說明每種設(shè)備都有不同的端口數(shù)目
          */
          class USDeviceModel
          {
          ....

          // 設(shè)備端口數(shù)目
          int deviceport;
          }

          class USDevicePort
          {
          private int deviceId;
          private int devicePort;
          }

                         1              :                    1                    :                    n
          一種US設(shè)備(device)----->設(shè)備類型(model)------>不同數(shù)目的設(shè)備端口
          US設(shè)備:設(shè)備類型:設(shè)備端口數(shù)目 = 1:1:n
          所以,如果新增設(shè)備的時(shí)候,要根據(jù)設(shè)備類型,得到相應(yīng)的設(shè)備端口數(shù)目,
          然后在USDevicePort對(duì)應(yīng)的數(shù)據(jù)庫(kù)表中插入記錄.
          編輯設(shè)備的時(shí)候,如果編輯了US設(shè)備類型,則相應(yīng)的設(shè)備端口就會(huì)改變,這種
          情況除了更新USDevice對(duì)應(yīng)的數(shù)據(jù)表中設(shè)備類型外,因?yàn)樵赨SDevicePort表中
          存放在以前設(shè)備類型的端口記錄,所以應(yīng)該先刪除之前的端口記錄,然后再插入
          現(xiàn)在類型所對(duì)應(yīng)的端口記錄.
          其實(shí)只需:

          //這一步根據(jù)具體設(shè)備id,從數(shù)據(jù)庫(kù)中取出相應(yīng)的設(shè)備對(duì)象
          USDevice device = .....

          // 得到US設(shè)備端口對(duì)象集合
          Set devicePortSet = device.getDevicePortSet();

          // 先清空以前所有的端口記錄
          devicePortSet.clear();

          // 根據(jù)編輯后類型ID,得到設(shè)備類型對(duì)象,并可以得到此種類型上的端口數(shù)目
          USDeviceModel usModle = ....


          // 根據(jù)上面得到的端口數(shù)據(jù),構(gòu)造"設(shè)備端口數(shù)目"對(duì)象,并把所有的設(shè)備端口對(duì)象添加到集合中

          //最后更新US設(shè)備


          這樣,每當(dāng)編輯一個(gè)US設(shè)備的類型后,在設(shè)備端口表中,這種設(shè)備編輯之前的類型所對(duì)應(yīng)的端口記錄
          就會(huì)被刪除,而保持只有新的設(shè)備類型端口記錄.

          注意在配置USDevice.hbm.xml文件時(shí),要將<set name="devicePortSet " casecade="all-orphan-delete" .../>
          因?yàn)樗鼤?huì)將和USDevice沒有關(guān)聯(lián)的對(duì)象從數(shù)據(jù)中刪除,這也與程序中devicePortSet.clear()相對(duì)應(yīng).

           

           

           


           

          posted on 2008-03-14 23:53 秋楓故事 閱讀(383) 評(píng)論(0)  編輯  收藏 所屬分類: 工作總結(jié)

          <2008年3月>
          2425262728291
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          新聞檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 和林格尔县| 弥渡县| 宽城| 阜新市| 扎囊县| 民丰县| 五指山市| 常德市| 长岛县| 海林市| 铜山县| 临猗县| 遵义县| 林甸县| 榆林市| 当阳市| 密云县| 美姑县| 敖汉旗| 遂川县| 正宁县| 石台县| 浦北县| 巧家县| 隆德县| 孟村| 石河子市| 屏山县| 阳新县| 宜章县| 象州县| 大田县| 曲阜市| 广宁县| 眉山市| 永德县| 常熟市| 勐海县| 龙江县| 临武县| 孟连|