大漠駝鈴

          置身浩瀚的沙漠,方向最為重要,希望此blog能向大漠駝鈴一樣,給我方向和指引。
          Java,Php,Shell,Python,服務器運維,大數據,SEO, 網站開發、運維,云服務技術支持,IM服務供應商, FreeSwitch搭建,技術支持等. 技術討論QQ群:428622099
          隨筆 - 238, 文章 - 3, 評論 - 117, 引用 - 0
          數據加載中……

          hibernate的 fetch lazy inverse cascade

          1.fetch 和 lazy 主要用于級聯查詢(select) 而 inverse和cascade主要用于級聯增、加刪、除修改(sava-update,delete)
          2.想要刪除父表中的記錄,但希望子表中記錄的外鍵引用值設為null的情況:
             父表的映射文件應該如下配置:
                  <set name="emps" inverse="false" cascade="all">
                      <key>
                          <column name="DEPTNO" precision="2" scale="0" />
                      </key>
                      <one-to-many class="com.sino.hibernate.Emp" />
                  </set>
              inverse="false"是必須的,cascade可有可無,并且子表的映射文件中inverse沒必要設置,cascade也可以不設置,如果設置就設置成為cascade="none"或者cascade="sava-update"
          <many-to-one name="dept" class="com.sino.hibernate.Dept" fetch="select" cascade="save-update">
                      <column name="DEPTNO" precision="2" scale="0" />
                  </many-to-one>


          3.關于級聯查找
            對子表的持久化類進行查找的時候,會一起把子表持久化類中的父表持久化類的對象一起查詢出來,在頁面中可以直接取值的情況:
              要把父表的映射文件中設置 lazy 屬性如下:
          <class name="com.sino.hibernate.Emp" table="EMP" schema="SCOTT" lazy="false">
          這樣就可以直接在頁面中取值 (類似于這樣的取值 client.cmanager.id)
          如果沒有設置 lazy="false" 則會拋出異常
          javax.servlet.ServletException: Exception thrown by getter for property cmanager.realName of bean cl
          在Action中取值的話就會拋出
          could not initialize proxy - the owning Session was closed的異常

          posted on 2009-03-09 19:41 草原上的駱駝 閱讀(542) 評論(0)  編輯  收藏 所屬分類: JAVA框架

          主站蜘蛛池模板: 平塘县| 百色市| 沙坪坝区| 房产| 正安县| 东安县| 景德镇市| 永川市| 肥城市| 涿鹿县| 延津县| 周至县| 宜春市| 化州市| 维西| 志丹县| 阿拉善右旗| 阿瓦提县| 黑龙江省| 达拉特旗| 辽阳市| 南安市| 福安市| 廊坊市| 察哈| 会东县| 汕尾市| 临泉县| 林芝县| 礼泉县| 赣榆县| 和政县| 宁国市| 三门峡市| 海林市| 柳州市| 蓝田县| 明光市| 邹城市| 萨迦县| 清苑县|