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
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