gdufo

           

          hibernate annotation關聯關系問題解決

          轉:
          http://www.aygfsteel.com/wuxj888java/archive/2008/01/03/172504.html

          最近使用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-08-26 13:46 gdufo 閱讀(906) 評論(0)  編輯  收藏 所屬分類: Hibernate

          導航

          統計

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          Hibernate

          友情鏈接

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 宁波市| 章丘市| 北宁市| 郴州市| 溧阳市| 嘉义市| 沛县| 鹿邑县| 汉川市| 遵义县| 延安市| 阿荣旗| 昭苏县| 贺兰县| 乌什县| 越西县| 耒阳市| 彭泽县| 石景山区| 西和县| 申扎县| 扬中市| 三台县| 安庆市| 集安市| 正安县| 鄱阳县| 富裕县| 措勤县| 葫芦岛市| 乃东县| 综艺| 依安县| 老河口市| 定日县| 思茅市| 达孜县| 察雅县| 宁明县| 两当县| 万源市|