大漠駝鈴

          置身浩瀚的沙漠,方向最為重要,希望此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框架

          主站蜘蛛池模板: 三原县| 灌阳县| 武陟县| 南陵县| 无极县| 德格县| 友谊县| 康马县| 博客| 法库县| 资溪县| 贵港市| 涿州市| 阳高县| 洮南市| 沅江市| 禹城市| 福州市| 杭锦后旗| 前郭尔| 井陉县| 清涧县| 郧西县| 祁东县| 右玉县| 乌鲁木齐县| 松阳县| 青神县| 枝江市| 尼勒克县| 阳山县| 宝清县| 平原县| 宁城县| 封开县| 井研县| 孟连| 达尔| 曲周县| 客服| 苏尼特左旗|