我想弄清楚調整我的db4o實例會發生什麼,但這真的讓我發瘋:它對我來說根本沒有意義。db4o:嚴重的問題和不連貫
本質上,我創建了兩個對象,並將第一個對象存儲在第二個ArrayList中。然後我想從整個數據庫和最初存儲的列表中刪除第一個對象。
這是我正在運行的操作的基本列表。
User user = new User("user");
Device device = new Device("device");
objectContainer.ext().store(user,5); // object storing depth
objectContainer.commit();
objectContainer.delete(device);
//objectContainer.close();
//objectContainer = new ...
此時如果我關閉和我重新打開的ObjectContainer用戶DEVICELIST包含一個空對象,而如果我不關閉容器(作爲普通運行的應用程序通常應避免)設備對象是靜止在用戶對象內部,而不在整個數據庫中。
我只想要將對象從列表和數據庫中刪除,但沒有任何空對象就位。這可能嗎??我已經嘗試了許多調整配置(弱引用,激活,約束......),但沒有取得任何成功。
顯然不會被刪除或者從數據庫這個例子中表現出來; – giulio
該對象只有在不能從緩存中的任何其他對象進行訪問時纔會被刪除。所以你必須從每個使用它的地方刪除對象,才能真正刪除它。 – Galigator
我重新創建了DBManager,所以現在關係是手動維護的。我認爲,由於緩存,避免這種情況是不可能的。即使試圖直接讀取數據庫也是不可能的,因爲對象保存在java堆中,並在重新啓動後立即刪除。 – giulio