0
我試圖刪除一個對象集合,但不知何故它們仍然存在。刪除的集合仍然存在
List<Assignment> assignments = shift.getAssignments();
shift.getObjectContext().deleteObjects(assignments);
shift.getObjectContext().commitChanges();
後執行的CommitChanges,集合中的唯一分配有此值:
[{<ObjectId:Assignment, assignment_id=26067>; committed; // snipped for clarity
我認爲後DeleteObject的(),國家將被刪除;在commitChanges()之後,它不應該保留在集合中。根據這個:http://cayenne.apache.org/docs/3.0/persistent-object-lifecycle.html。
我錯過了什麼?
編輯:更改代碼以刪除不同的數據對象,然後將更改傳播到分配。
請參閱下面關於刪除規則的答案。在你的例子中,雖然在刪除和提交後是「已提交」的賦值狀態,但是可疑的是。它應該是「短暫的」。看起來這些對象在打印此語句時未被刪除。這裏沒有足夠的信息來猜測原因。您是否還會在日誌中看到DELETE SQL語句(特別是ID 26067),並在打印出Assigmnent狀態之前或之後執行這些操作? – 2014-09-20 06:36:10
是的,我不確定發生了什麼「承諾」狀態。我現在無法重新創建相同的問題。但我認爲問題的一部分是,在我不知情的情況下,有一個回調創建任務。我查看日誌後發現它。 – Tuan 2014-09-22 19:00:02