大漠駝鈴

          置身浩瀚的沙漠,方向最為重要,希望此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 草原上的駱駝 閱讀(550) 評論(0)  編輯  收藏 所屬分類: JAVA框架

          主站蜘蛛池模板: 金门县| 岐山县| 县级市| 图们市| 葵青区| 迁安市| 赣州市| 广宗县| 辽宁省| 玉田县| 旌德县| 贡山| 新巴尔虎左旗| 始兴县| 东安县| 靖边县| 慈溪市| 九龙县| 峨眉山市| 鲜城| 德昌县| 钟山县| 灵丘县| 青神县| 甘德县| 尚义县| 昌邑市| 桃源县| 平度市| 六盘水市| 新兴县| 错那县| 文昌市| 湟源县| 贡嘎县| 万载县| 准格尔旗| 永清县| 菏泽市| 南汇区| 子洲县|