溫暖潔森

          勇敢做自己

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

          主站蜘蛛池模板: 来宾市| 商洛市| 汝南县| 库尔勒市| 明星| 南陵县| 东丽区| 收藏| 潜江市| 巍山| 武陟县| 安顺市| 华池县| 鸡泽县| 牡丹江市| 肇源县| 修水县| 新安县| 临泉县| 五莲县| 芦溪县| 卓资县| 河西区| 阳春市| 郧西县| 壶关县| 边坝县| 博兴县| 吐鲁番市| 华容县| 旅游| 延津县| 开原市| 黑水县| 双辽市| 霍林郭勒市| 正镶白旗| 莱芜市| 湖南省| 万州区| 八宿县|