2012-01-28 35 views
-1

我在應用程序引擎服務器上運行以下JDO代碼。JDO應用程序引擎:嘗試保留類的List成員時拋出異常

我收到以下錯誤消息:

org.datanucleus.jdo.exceptions.ClassNotPersistenceCapableException:類java.util.ArrayList中的‘是不是可持久化的「類’這意味着它無論是處理不當得到增強,或者文件的增強版本不在CLASSPATH中(或者未被未增強版本隱藏),或者找不到該類的元數據/註釋。「不可持久。這意味着它或者沒有被增強,或者文件的增強版本不在CLASSPATH中(或者被未增強版本隱藏),或者沒有找到該類的元數據。

這裏是我的類:

@PersistenceCapable(detachable="true") 
class Store { 

    @PrimaryKey 
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) 
    private Key key; 

    @Persistent 
    @Element(dependent = "true") 
    private List<User> users; 

    List<User> getUsers() { 
    return users; 
    } 

} 

當我運行

pm.makePersistent(store.getUsers()); 

我得到上面的例外。任何想法爲什麼會發生這種情況? 我以爲文檔說我可以有一個列表<>作爲一個持久的 元素,它會變成一個多值屬性。

感謝,

約翰Goche的

+0

我猜List 類本身並不是持久化的,所以必須做一個pm.makePersistent(store);要堅持下去。 (?) – johngoche9999 2012-01-29 13:41:25

回答

2

我「猜測」,因爲該方法需要一個對象,你在一個列表傳遞。如果你想堅持一個持久對象列表,我期望打電話給pm.makePersistentAll(),這正是JDO文檔所說的。

相關問題