因爲關聯關係是一對多和多對一的關係,因而在代碼中須要刪除多的一方的對象時出現了html
deleted object would be re-saved by cascade (remove deleted object from associations)
對於這個異常,大概有有一下3中方法session
方法1 刪除Set方的cascade:(缺點:子對象和父對象不能進行級聯更新,沒意義)
方法2 在many-to-one方增長cascade 但值不能是none (缺點:子對象也級聯到父對象,刪除子對象會將父對象一併刪除,也不可取)spa
方法3(親測成功,並且很方便),先看下面代碼:code
order = (Order) session.get(Order.class, 2); order.getCustormer().getOrders().remove(order); order.setCustormer(null); session.delete(order);
order是多的那一方,若是要刪除一個order對象,直接調用session.delete()方法確定就會報開頭那個對象orm
爲了解決這個問題,就能夠先獲得與該order對象對應的一的那一方(即customer對象),而後先將該order對象從customer對象中刪除,而且將該order對象的customer對象設置爲null,這樣再執行刪除時就不會出現那個異常了。htm
文章出自:http://www.cnblogs.com/xiaoluo501395377/archive/2013/03/02/2940290.html對象