溫暖潔森

          勇敢做自己

            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 閱讀(3331) 評論(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也引入,目前都是最新版本,這個問題確實是存在  回復  更多評論
            

          主站蜘蛛池模板: 醴陵市| 大新县| 布拖县| 绥棱县| 平凉市| 镇坪县| 阿尔山市| 禹州市| 轮台县| 兴国县| 夏邑县| 大丰市| 德清县| 遂宁市| 宜都市| 福建省| 上虞市| 临海市| 和平区| 西青区| 永平县| 贺兰县| 永德县| 舞钢市| 东台市| 刚察县| 云安县| 咸宁市| 买车| 西平县| 尉氏县| 盈江县| 集安市| 石门县| 阿瓦提县| 梨树县| 全南县| 新乡市| 桂东县| 鄂州市| 新密市|