我有一個存儲在GAE數據存儲中的持久類。我已經從課程中刪除了其中一個屬性。此表中的新記錄顯示值<none
>對於已刪除的屬性。但是有沒有辦法讓這個專欄完全從桌子上掉下來?如何刪除GAE數據存儲中的列(屬性)?
謝謝。
添加根據Moraes的建議下面「遷移」的代碼,但它沒有實現所期望的結果:
PersistenceManager pm = PMF.get().getPersistenceManager();
try {
Query q = pm.newQuery(UserLogin.class);
Collection<UserLogin> list = (Collection<UserLogin>) q.execute();
Iterator<UserLogin> iter = list.iterator();
while (iter.hasNext()) {
UserLogin obj = (UserLogin) iter.next();
obj.setLoginDate(obj.getLoginDate());
}
pm.makePersistentAll(list);
} finally {
pm.close();
}
moraes - 感謝您的幫助。請參閱我的OP中的「遷移」代碼。我的UserLogin類是持久類,不需要的字段已從中刪除。但不知何故,我仍然在數據存儲中的舊條目下看到'。我錯過了什麼? –
DFB
2011-05-16 13:55:42
您需要調用pm.makePersistentAll()傳遞更改的實體,以保存它們並有效地排除不再存在的額外屬性。 – moraes 2011-05-16 14:40:15
我添加了該方法的調用,但沒有區別。查看我的OP中更新的代碼。我仍然看到'已刪除的屬性的值。謝謝。 –
DFB
2011-05-16 15:14:42