溫暖潔森

          勇敢做自己

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

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

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


          我又用hbm.xml方式實驗了一下,在Person端加上cascade="save-update",如果醫院信息修改或新增,保存人員信息會級聯更新或新增到醫院表,方式如下:
          <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>



          后來經別人指點發現我引用的包是
          import javax.persistence.CascadeType;
          import javax.persistence.Cascade;

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

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

          評論

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

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

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

          主站蜘蛛池模板: 普兰店市| 景宁| 东乌| 淳安县| 东丽区| 定南县| 甘谷县| 澳门| 富民县| 唐海县| 磐安县| 常宁市| 岑巩县| 济宁市| 睢宁县| 东乌珠穆沁旗| 库尔勒市| 临高县| 郁南县| 昭苏县| 祁东县| 平凉市| 宜兴市| 大英县| 灵石县| 海林市| 金阳县| 永和县| 宜兴市| 惠州市| 沐川县| 华亭县| 泾阳县| 乌鲁木齐县| 安远县| 尉氏县| 金坛市| 手机| 青河县| 凌云县| 宝丰县|