溫暖潔森

          勇敢做自己

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            13 隨筆 :: 1 文章 :: 70 評論 :: 0 Trackbacks
          最近使用annotation做hibernate映射,有兩張表人員(Person)表 和醫(yī)院(Hospital)表,人員表和醫(yī)院表是ManyToOne,業(yè)務只需要從人員表出發(fā)設置不同醫(yī)院,所以是單向的ManyToOne

          在Person表關系定義如下:
          @ManyToOne(cascade = { CascadeType.PERSIST,CascadeType.MERGE})
          @JoinColumn(name = "HOSPITAL_ID")

          但我在后臺方法測試時,如果醫(yī)院信息修改或新建,保存到人員表中,醫(yī)院信息不會級聯(lián)更新或新增,級聯(lián)關系不起作用


          我又用hbm.xml方式實驗了一下,在Person端加上cascade="save-update",如果醫(yī)院信息修改或新增,保存人員信息會級聯(lián)更新或新增到醫(yī)院表,方式如下:
          <many-to-one name="hospital" class="com.Hospital" fetch="select" lazy="false" not-null="true" cascade="save-update">
          <column name="HOSPITAL_ID" />
          </many-to-one>



          后來經(jīng)別人指點發(fā)現(xiàn)我引用的包是
          import javax.persistence.CascadeType;
          import javax.persistence.Cascade;

          而應該使用hibernate annotation包
          import org.hibernate.annotations.Cascade;
          import org.hibernate.annotations.CascadeType;

          Person表的關聯(lián)關系應改成
           @ManyToOne()
           @Cascade(value={CascadeType.SAVE_UPDATE})
           @JoinColumn(name = "HOSPITAL_ID")
          這樣級聯(lián)更新和新增功能就成功了
          posted on 2008-01-03 16:24 harry520 閱讀(3331) 評論(3)  編輯  收藏 所屬分類: J2EE

          評論

          # re: hibernate annotation關聯(lián)關系問題解決 2008-01-03 17:40 小立飛刀
          good  回復  更多評論
            

          # re: hibernate annotation關聯(lián)關系問題解決 2008-01-04 09:20 itVincent
          不清楚你的hibernate是什么版本,我用的3.3就是用JPA的包的  回復  更多評論
            

          # re: hibernate annotation關聯(lián)關系問題解決[未登錄] 2008-01-04 09:32 harry520
          我用的也是hibernate annotation 3.3,把其中ejb3-persistence.jar也引入,目前都是最新版本,這個問題確實是存在  回復  更多評論
            

          主站蜘蛛池模板: 肃南| 同仁县| 鲜城| 江安县| 永和县| 玉树县| 云和县| 桂东县| 鄄城县| 罗甸县| 教育| 遂昌县| 龙岩市| 丹巴县| 迭部县| 沿河| 安达市| 景泰县| 巴彦县| 中江县| 开阳县| 汉寿县| 华宁县| 西丰县| 瓦房店市| 佛学| 贵州省| 泸定县| 闽清县| 肥乡县| 宜州市| 新余市| 会泽县| 邮箱| 木兰县| 常州市| 扶沟县| 云林县| 长海县| 博罗县| 靖远县|