2012-08-10 31 views

回答

2

JDO最有可能使用Enum.valueOf(class, string)實例枚舉。所以在不支持的值的情況下,它將產生IllegalArgumentException

+0

是的,只要他儲存它作爲一個字符串,而不是一個整數,http://code.google.com/p/datanucleus-appengine/source/browse/trunk/src/com/google/appengine/datanucleus/TypeConversionUtils的.java#376 – DataNucleus 2012-08-10 15:26:38

0

不能添加或刪除運行時枚舉,這是一個Java的事情,而不是GAE。

+0

OP不問這個問題。他問是否刪除枚舉值(然後編譯和部署)會產生一個錯誤,因爲數據庫中可能沒有映射到更改後的枚舉值。 – 2012-08-10 13:38:04

0

就像彼得說,從一個枚舉值移除將拋出一個錯誤。但是我只保留了舊的值並創建了一個方法getValues(),它返回一個當前值的數組,並使用它們。隨着用戶使用新版本,舊值將自動更新,並最終可以安全地刪除。