0
短暫訪問收集我在我所有的管理者必須返回瞬態收集特定的查詢方法,但我想執行它後立即關閉查詢。DataNucleus將查詢:收盤後
tx.begin();
Query query=pm.newQuery(...);
Collection col=(Collection)query.execute();
pm.makeTransientAll(col,true);
query.close();
tx.commit();
問題:查詢被關閉後收集無法訪問(?DN知道身份),否則它拋出一個「查詢已關閉」的錯誤!
解決方案:創建原始集合的副本!
Collection col=new ArrayList((Collection)query.execute());
,但我想避免這種情況,即使這是一個本地副本,它不是一個深刻的克隆,但它仍然分配所需要的元素(因此,在某些時候是整個陣列的空間將分配兩次內存),我想避免這種情況。
我是我缺少的東西? 有沒有辦法避免創建克隆?