posts - 37, comments - 9, trackbacks - 0, articles - 0

          Hibernate In Action

          Posted on 2005-09-01 23:59 飛翔 閱讀(279) 評論(0)  編輯  收藏 所屬分類: Java
          log4j.logger.net.sf.hibernate.ps.PreparedStatementCache=info

          inverse="false" 則本類為主控方,hibernate會自動查找關聯的對象(即使不給完全的對象)
          inverse = "true" 為被控方

          cascade = "delete"或其他   必須是個完整的對象hibernate才會去刪除關聯的對象,否則不予刪除

          <set name="members" table="USERGROUP" lazy="true"
             inverse="false" cascade="delete" sort="unsorted">
             <key column="groupid"></key>
             <many-to-many class="Sysuser" column="userid">
             </many-to-many>
            </set>

          現對inverse 和cascade 屬性在不同條件下測試,結果如下:
          (   全為完整對象,否則cascade delete 不會級聯刪除,除非inverse= false 而不出錯)

          inverse        cascade        result
          -------------------------------------
          true               delete           delete sysgroup,sysuser
          true                none             delete sysgroup
          false               delete            delete sysgroup,sysuser,user-group
          false                none             delete sysgroup,user-group
          <set name="permissions" table="group_permissions" lazy="true"
             inverse="true" cascade="delete" sort="unsorted">
             <key column="GROUPID"></key>
             <one-to-many class="GroupPermissions" />
            </set>
          (完整的對象)
          one-to-many :
          inverse   cascade            result
          ------------------------------------
          true       delete                  刪除    sysgroup,grouppermissions
          true       none                   只刪除 sysgroup
          false      兩種情況           出錯,不能更新grouppermissions=null
          主站蜘蛛池模板: 庆云县| 濉溪县| 佛坪县| 阜宁县| 东兴市| 永泰县| 榆林市| 吕梁市| 县级市| 平凉市| 芮城县| 玉山县| 龙州县| 社旗县| 金阳县| 贵州省| 五指山市| 昌都县| 元朗区| 武乡县| 凉城县| 精河县| 会东县| 胶南市| 高平市| 澄城县| 江陵县| 南华县| 湖北省| 金坛市| 施秉县| 婺源县| 礼泉县| 兴城市| 定日县| 灯塔市| 固始县| 马尔康县| 崇明县| 老河口市| 临澧县|