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
          主站蜘蛛池模板: 伊春市| 疏附县| 宝山区| 柳江县| 莱州市| 新竹县| 连江县| 华宁县| 扶余县| 平阴县| 广灵县| 句容市| 延寿县| 平乡县| 海门市| 永济市| 兴海县| 嘉黎县| 淅川县| 柘荣县| 涞水县| 扶绥县| 日照市| 左云县| 万山特区| 惠州市| 土默特右旗| 吕梁市| 德州市| 达尔| 烟台市| 沾化县| 大城县| 靖安县| 拉萨市| 托里县| 漾濞| 南投县| 波密县| 普格县| 湘乡市|